Estou lidando com dois diretórios, sendo um pai do outro (mas isso é irrelevante para a pergunta). Eu quero ler os arquivos em um diretório, usando um aplicativo, mas isso parece não funcionar. De acordo com o Powershell
Get-Acl
comando, isso pode ser facilmente explicado:
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...
Como você pode ver, eu tenho controle total sobre o diretório "C:\Temp_Folder\Decompile\Customer_Logs" enquanto as permissões no diretório "C:\Temp_Folder\Decompile" são limitadas.
No entanto, o problema é exatamente o oposto: consigo ver tudo no diretório "C:\Temp_Folder\Decompile", enquanto não vejo nada no diretório "C:\Temp_Folder\Decompile\Customer_Logs".
- Como isso é possível?
- Existe uma maneira de copiar as permissões de arquivo de um diretório para outro? (Eu não vi essa opção no
Set-Acl
comando Powershell)
Ah, meu aplicativo é o Microsoft Server Management Studio, versão v18.12. Estou tentando restaurar um backup e não consigo encontrá-lo em seu diretório.
Edit1: Lista completa de permissões de arquivo dos diretórios:
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: resultados do 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
Acho que a chave aqui é que você mencionou “Microsoft Server Management Studio” e está tentando restaurar um backup. Acho que você quer dizer SQL Server Management Studio.
Se for esse o caso, não é VOCÊ quem precisa de permissões para a pasta, mas a conta de serviço do SQL Server que geralmente é
NT SERVICE\MSSQLSERVER
.Você deve conceder acesso de leitura à pasta que contém os backups da conta de serviço SQL se desejar que o SSMS e o SQL Server possam restaurar a partir deles. Você pode encontrar a conta de serviço do SQL Server abrindo o SQL Server Configuration Manager e, em seguida, atribua a esse usuário permissões nas pastas.
Mais informações aqui: https://www.mssqltips.com/sqlservertip/6930/issues-sql-server-permissions-restore-database/
No que diz respeito a ver a pasta de nível superior, e não a
Customer_Logs
pasta, é porque a pasta pai fornece a todos os usuários no sistema acesso por meio deBUILTIN\Users
e ,NT AUTHORITY\Authenticated users
masCustomer_Logs
não.