Permissão mínima para restaurar * alguns * bancos de dados no SQL Server 2012

1

Estou tentando criar um conjunto de permissões em que um logon do SQL pode criar backups de todos os bancos de dados, mas apenas restaurar os backups nos bancos de dados de TEST. Outro login deve ser usado para restaurar a LIVE (que está no mesmo servidor SQL).

Aqui indica:

If the database exists, RESTORE permissions default to members of the sysadmin and dbcreator fixed server roles and the owner (dbo) of the database

Com base nisso, tentei tornar o logon o proprietário dos bancos de dados de teste com a permissão db_owner db, mas sem a função de servidor sysadmin. Nos bancos de dados LIVE, o login tem: db_accessadmin, db_backupoperator, db_datareader, db_denydatawriter, db_securityadmin (e nenhuma propriedade).

Mas o Restore ainda não funciona. Se eu tentar executar uma restauração, não será possível visualizar os conjuntos de backup em um arquivo .bak. Eu acho que o diálogo está fazendo um RESTORE HEADERONLY no fundo; se eu executar RESTORE HEADERONLY FROM DISK = 'D:\Path\backup.bak' , recebo CREATE DATABASE permission denied in database 'master' . Eu posso ver os backupsets bem com a função sysadmin.

Isso é possível sem sysadmin?

    
por racitup 11.05.2018 / 15:18

1 resposta

0

Para todos aqueles DBA's gritando com a minha pergunta, eu pensei em tirar você da sua miséria:

Eu decidi que a maneira correta de resolver isso é criar uma segunda instância nomeada do SQL Server, para que haja separação extra entre os Live e os Test DBs. Então você pode configurar as permissões que quiser para cada instância.

Parece que você precisa ter a função de servidor sysadmin OR dbcreator role AND db_owner para RESTORE

    
por 01.06.2018 / 18:53