Tengo una base de datos SQL Server 2012 que se ejecuta en Amazon EC2. He creado un usuario para poder crear, editar y soltar bases de datos. Le di al nuevo usuario con dbcreator
función de servidor.
Mi usuario puede conectarse de forma remota y ejecuta con éxito el create database foo;
comando. Pero cuando el usuario intenta soltar la base de datos nuevamente con drop database foo;
el comando falla con el siguiente error:
Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM.
Note the error and time, and contact your system administrator.
ErrorCode: 21
Aunque la base de datos seleccionada es master
(así que no creo que sea porque está en uso). Y el comando tiene éxito cuando lo ejecuto nuevamente conectado como usuario administrativo.
Verifiqué la base de datos recién creada, y a mi usuario se le asignó el db_owner
rol en la base de datos como esperaba, así que entiendo que esto debería ser permisos suficientes para que ese usuario pueda eliminar la base de datos que acaba de crear.
De acuerdo con http://technet.microsoft.com/en-us/library/ms178613.aspx, el rol db_owner debería tener permisos suficientes. "Requiere el permiso CONTROL en la base de datos, o ALTERAR CUALQUIER permiso de BASE DE DATOS, o pertenecer a la función fija de base de datos db_owner".
Busqué el error 615 y encontré "No se pudo encontrar el ID de tabla de base de datos% d, nombre '%. * Ls'". lo cual no tiene sentido para mí. http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx
Información de la versión del 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
- desde select @@version
.
fuente
No encontré la causa de esto, pero la siguiente, aunque no es la mejor solución, habilita el comando.
Espero que señale el problema y que alguien pueda brindar una mejor respuesta.
Yo uso Microsoft SQL Server Management Studio (Administrador) bajo los inicios de sesión de seguridad de localhost
Haga doble clic en usuario, seleccione Roles de servidor, proporcione dbcreator, public y sysadm.
fuente