我的目录文件权限有什么问题?如何将目录的文件权限复制到另一个目录?

我的目录文件权限有什么问题?如何将目录的文件权限复制到另一个目录?

我正在处理两个目录,一个是另一个的父目录(但这与问题无关)。我想使用应用程序读取一个目录中的文件,但这似乎不起作用。根据命令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”目录中却什么都看不到。

  1. 这怎么可能?
  2. 有没有办法将文件权限从一个目录复制到另一个目录?(我在 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\UsersNT AUTHORITY\Authenticated usersCustomer_Logs不允许。

相关内容