Eu adicionei uma nova conta do Windows [PROD\apdf]
e dei a ela a função dbcreator.
- O usuário inicia uma restauração de um servidor de aplicativos.
- O banco de dados é restaurado corretamente. Nas propriedades do banco de dados, ele mostra o usuário prod\apdf como o proprietário do banco de dados. No entanto, esse usuário não tem acesso ao banco de dados. Os sysadmins e dbcreators são adicionados à segurança no novo banco de dados, mas não naquele pelo qual ele foi restaurado. Ao puxar a lista de funções dbcreator, o
[PROD\apdf]
usuário está nessa lista.
Certifiquei-me de que a conta não é órfã e mostra que é membro da função dbcreator usando:
EXEC sp_helpsrvrolemember 'dbcreator';
Eu vi um artigo que indica que isso pode ser por design, mas eu queria ver se alguém tinha uma resposta sobre isso.
Depois que o banco de dados for restaurado, um membro das funções de servidor sysadmin ou securityadmin precisará alterar a autorização (propriedade) do banco de dados para o logon:
Posso verificar que a operação de restauração não parece conceder a propriedade corretamente por meio do MCVE abaixo .
crie um logon e torne-o membro da função de servidor dbcreator:
Faça um backup do banco de dados do modelo para restaurar mais tarde:
Faça login no servidor usando o usuário [backup_restore_test] e execute o seguinte:
Isso mostra que o login backup_restore_test é o proprietário do banco de dados:
No entanto, isso falha:
O erro:
Volte para um login sysadmin e execute isto:
Agora, isso funciona, quando conectado como o login [backup_restore_test]:
A menos que eu esteja ignorando algo, o login backup_restore_test deve ter acesso ao banco de dados assim que for restaurado, pois é o proprietário do banco de dados nesse ponto. Verifiquei esse comportamento no SQL Server 2012 e no SQL Server vNext