我正在处理两个目录,一个是另一个的父目录(但这与问题无关)。我想使用应用程序读取一个目录中的文件,但这似乎不起作用。根据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”目录中什么也看不到。
- 这怎么可能?
- 有没有办法将文件权限从一个目录复制到另一个目录?
Set-Acl
(我在Powershell命令中没有看到这样的选项)
哦,我的应用程序是 Microsoft Server Management Studio,版本 v18.12。我正在尝试恢复备份,但似乎在其目录中找不到它。
Edit1:目录文件权限的完整列表:
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 : ...
Edit2: 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
我认为这里的关键是您提到了“Microsoft Server Management Studio”并且您正在尝试恢复备份。我认为您的意思是 SQL Server Management Studio。
如果是这种情况,则不是您需要对该文件夹的权限,而是 SQL 服务器服务帐户通常是
NT SERVICE\MSSQLSERVER
.如果您希望 SSMS 和 SQL 服务器能够从中恢复,您必须授予对包含 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
没有。