我正在处理两个目录,一个是另一个的父目录(但这与问题无关)。我想使用应用程序读取一个目录中的文件,但这似乎不起作用。根据命令Powershell
Get-Acl
,这很容易解释:
Prompt> Get-Acl -All C:\Temp_Folder\Decompile
...
Path Owner Access
---- ----- ------
Decompile Domain\MyUser APPLICATION PACKAGE AUTHORITY\ALL APPLICATION
PACKAGES Allow Write, Read, Synchronize...
Prompt> Get-Acl -All C:\Temp_Folder\Decompile\Customer_Logs
...
Path Owner Access
---- ----- ------
Customer_Logs Domain\MyUser NT AUTHORITY\SYSTEM Allow FullControl...
如您所见,我可以完全控制目录“C:\Temp_Folder\Decompile\Customer_Logs”,而对目录“C:\Temp_Folder\Decompile”的权限受到限制。
然而问题恰恰相反:我可以看到“C:\Temp_Folder\Decompile”目录中的所有内容,而在“C:\Temp_Folder\Decompile\Customer_Logs”目录中却什么都看不到。
- 这怎么可能?
- 有没有办法将文件权限从一个目录复制到另一个目录?(我在 Powershell 命令中没有看到这样的选项
Set-Acl
)
哦,我的应用程序是 Microsoft Server Management Studio,版本 v18.12。我正在尝试恢复备份,但似乎无法在其目录中找到它。
编辑1:目录文件权限的完整列表:
Prompt> Get-Acl -All C:\Temp_Folder\Decompile\ | fl
Path : Microsoft.PowerShell.Core\FileSystem::
C:\Temp_Folder\Decompile\
Owner : Domain\MyUser
Group : Domain\Domain Users
Access : APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES
Allow Write, Read, Synchronize
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
NT AUTHORITY\Authenticated Users Allow -536805376
Audit :
Sddl : ...
Prompt> Get-Acl -All C:\Temp_Folder\Decompile\Customer_Logs | fl
Path : Microsoft.PowerShell.Core\FileSystem::
C:\Temp_Folder\Decompile\Customer_Logs
Owner : Domain\MyUser
Group : Domain\Domain Users
Access : NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Administrators Allow FullControl
Domain\GVH Allow FullControl
Domain\MyUser Allow FullControl
Audit :
Sddl : ...
编辑2:iCalcLs 的结果:
C:\Temp_Folder\Decompile>icacls .
. APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(OI)(CI)(R,W)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Users:(I)(OI)(CI)(RX)
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\Authenticated Users:(I)(OI)(CI)(IO)(M)
Successfully processed 1 files; Failed processing 0 files
...
C:\Temp_Folder\Decompile\Customer_Logs>icacls .
. Domain\MyUser:(OI)(CI)(F)
Domain\GVH:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
Successfully processed 1 files; Failed processing 0 files
答案1
我认为这里的关键是您提到了“Microsoft Server Management Studio”,并且您正在尝试恢复备份。我认为您指的是 SQL Server Management Studio。
如果是这种情况,则需要该文件夹权限的不是您,而是通常是 SQL 服务器服务帐户NT SERVICE\MSSQLSERVER
。
如果您希望 SSMS 和 SQL Server 能够从备份中恢复,则必须授予 SQL 服务帐户对包含备份的文件夹的读取访问权限。您可以通过打开 SQL Server 配置管理器找到 SQL Server 服务帐户,然后为该用户分配文件夹的权限。
更多信息请点击这里:https://www.mssqltips.com/sqlservertip/6930/issues-sql-server-permissions-restore-database/
关于查看顶层文件夹而不是文件Customer_Logs
夹,这是因为父文件夹允许系统上的所有用户通过和访问BUILTIN\Users
,NT AUTHORITY\Authenticated users
但Customer_Logs
不允许。