У меня база данных SQL Server 2012 работает на Amazon EC2. Я создал пользователя, чтобы иметь возможность создавать, редактировать и удалять базы данных. Я дал нового пользователя с dbcreator
ролью сервера.
Мой пользователь может подключиться удаленно и успешно запускает create database foo;
команду. Но когда пользователь пытается снова удалить базу данных с drop database foo;
помощью команды, происходит сбой со следующей ошибкой:
Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM.
Note the error and time, and contact your system administrator.
ErrorCode: 21
Хотя выбранная база данных есть master
(поэтому я не думаю, что это потому, что она используется). И команда успешно выполняется, когда я запускаю ее снова, вошел в систему как администратор.
Я проверил вновь созданную базу данных, и моему пользователю была назначена db_owner
роль в базе данных, как я и ожидал, поэтому я понимаю, что для этого пользователя должно быть достаточно разрешений для удаления базы данных, которую он только что создал.
Согласно http://technet.microsoft.com/en-us/library/ms178613.aspx роли db_owner должно быть достаточно разрешений. «Требуется разрешение CONTROL для базы данных, или разрешение ALTER ANY DATABASE, или членство в предопределенной роли базы данных db_owner».
Я просмотрел ошибку 615 и обнаружил «Не удалось найти идентификатор таблицы базы данных% d, имя«%. * Ls ».» что не имеет смысла для меня. http://technet.microsoft.com/en-us/library/aa937592(v=sql.80).aspx
Информация о версии сервера 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
- с select @@version
.
источник
Я не нашел причину этого, но следующее, хотя и не лучшее решение, разрешает команду.
Я надеюсь, что это указывает на проблему, и кто-то может дать лучший ответ.
Я использую Microsoft SQL Server Management Studio (администратор).
Дважды щелкните пользователя, выберите роли сервера, укажите dbcreator, public и sysadm.
источник