Gota papel no banco de dados SQL Server?
-
19-09-2019 - |
Pergunta
Eu estou tentando soltar um do papel no meu banco de dados SQL Server. Deixei todos os membros de papel e quando eu tentei largar papel eu tenho esta mensagem de erro:
Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.
Alguém sabe por quê? Eu verifiquei o esquema Propriedade e só tinha sinal de verificação em seu próprio nome.
Solução
Você não pode deixar cair um principal banco de dados que possui um esquema. Você tem que transferir a propriedade de esquema para algum outro banco de dados principal ou deixar cair o esquema antes você pode soltar o principal banco de dados.
Outras dicas
15138 erro é devido ao usuário que você está tentando excluir possui um esquema.
Se você executar o abaixo consulta que você vai obter o esquema de propriedade do usuário.
USE DatabaseName;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('UserName');
Digamos que ele retorna 'db_denydatareader' esquema. Em seguida, você pode atribuir esse esquema de usuário padrão 'dbo' usando o abaixo consulta.
ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;