Eu tenho um banco de dados do SQL Server 2012 em execução no Amazon EC2. Eu criei um usuário para poder criar, editar e descartar bancos de dados. Eu dei o novo usuário com dbcreator
função de servidor.
Meu usuário pode se conectar remotamente e executa com êxito o create database foo;
comando. Mas quando o usuário tenta soltar o banco de dados novamente com drop database foo;
o comando falha com o seguinte erro:
Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM.
Note the error and time, and contact your system administrator.
ErrorCode: 21
Mesmo que o banco de dados selecionado esteja master
(então eu não acho que seja porque está em uso). E o comando é bem-sucedido quando eu o executo novamente, conectado como usuário administrativo.
Eu verifiquei o banco de dados recém-criado, e meu usuário recebeu a db_owner
função no banco de dados como eu esperava, então meu entendimento é que isso deve ter permissões suficientes para que esse usuário possa eliminar o banco de dados que acabou de criar.
De acordo com http://technet.microsoft.com/en-us/library/ms178613.aspx, a função db_owner deve ter permissões suficientes. "Requer a permissão CONTROL no banco de dados, a permissão ALTER ANY DATABASE ou a associação à função de banco de dados fixa db_owner."
Eu procurei o erro 615 e encontrei "Não foi possível encontrar a ID da tabela do banco de dados% d, nome '%. * Ls'." o que não faz sentido para mim. http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx
Informação da versão do servidor sql: Microsoft SQL Server 2012 (SP1) - 11.0.3368.0 (X64) /n May 22 2013 17:10:44 /n Copyright (c) Microsoft Corporation/n Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)/n
- de select @@version
.
fonte
Não encontrei a causa disso, mas a seguinte solução, embora não seja a melhor, habilita o comando.
É minha esperança que aponte para o problema e alguém possa fornecer uma resposta melhor.
Eu uso o Microsoft SQL Server Management Studio (Administrador) Em logins de segurança do host local
Clique duas vezes em usuário, selecione Funções do Servidor, forneça dbcreator, public e sysadm.
fonte