J'ai une base de données SQL Server 2012 fonctionnant sur amazon EC2. J'ai créé un utilisateur pour pouvoir créer, éditer et supprimer des bases de données. J'ai donné au nouvel utilisateur dbcreator
un rôle de serveur.
Mon utilisateur peut se connecter à distance et exécute correctement la create database foo;
commande. Mais lorsque l'utilisateur tente de supprimer à nouveau la base de données avec drop database foo;
la commande échoue avec l'erreur suivante:
Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM.
Note the error and time, and contact your system administrator.
ErrorCode: 21
Même si la base de données sélectionnée est master
(donc je ne pense pas que ce soit parce qu'elle est utilisée). Et la commande réussit lorsque je l'exécute à nouveau en tant qu'utilisateur administrateur.
J'ai vérifié la base de données nouvellement créée et mon utilisateur s'est vu attribuer le db_owner
rôle dans la base de données comme je m'y attendais, donc je comprends que cela devrait être des autorisations suffisantes pour que cet utilisateur puisse supprimer la base de données qu'il vient de créer.
Selon http://technet.microsoft.com/en-us/library/ms178613.aspx, le rôle db_owner devrait avoir des autorisations suffisantes. "Nécessite l'autorisation CONTROL sur la base de données, ou l'autorisation ALTER ANY DATABASE, ou l'appartenance au rôle de base de données fixe db_owner."
J'ai recherché l'erreur 615 et trouvé "Impossible de trouver l'ID de table de base de données% d, nom '%. * Ls'." ce qui n'a aucun sens pour moi. http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx
Informations sur la version du serveur 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
.
la source
Je n'ai pas trouvé la cause de cela, mais la solution suivante, bien que pas la meilleure, active la commande.
J'espère que cela indique le problème et que quelqu'un peut fournir une meilleure réponse.
J'utilise Microsoft SQL Server Management Studio (administrateur) sous les connexions de sécurité localhost
Double-cliquez sur l'utilisateur, sélectionnez Rôles du serveur, donnez dbcreator, public et sysadm.
la source