SQL Server 2008 R2 Express permissions-не удается создать базу данных или изменить пользователей

недавно обновлен до SQL Server 2008 R2 Express. Когда я пытаюсь создать базу данных после входа в систему с помощью проверки подлинности Windows с моим id roger.Мур я получаю эту ошибку:

при выполнении инструкции Transact-SQL или пакета возникло исключение. (Microsoft.От SQLServer.ConnectionInfo)
Создать разрешение базы данных запрещено в базе данных "master". Восстановление HEADERONLY завершается аномально ошибка 262

Если я попытаюсь добавить роль сисадмина для Роджера.Мур, это ошибка, которую я получаю:

не удалось добавить элемент для ServerRole 'sysadmin'. (Microsoft.От SQLServer.Smo)
При выполнении инструкции Transact-SQL или пакета возникло исключение. (Microsoft.От SQLServer.ConnectionInfo)
Пользователь не имеет разрешения на выполнение этого действия ошибка 15247

если я попытаюсь добавить эту роль моему пользователю с помощью T-SQL, используя эту команду,

EXEC sp_addsrvrolemember 'ziffenergyroger.moore', 'sysadmin';
GO

здесь ошибка Получаю:

Msg 15247, Уровень 16, состояние 1, процедура sp_addsrvrolemember, строка 29
Пользователь не имеет разрешения на выполнение этого действия.

есть ли у кого-нибудь предложения? Кажется, я ничего не могу сделать с базой данных на локальной машине. Обратите внимание, что я администратор на рабочей станции Windows 7, которую я использую, и если я пытаюсь создать или изменить базы данных и / или пользователей в нашей сети, он тестирует сервер баз данных с помощью SQL Server Студия управления, я могу сделать это без проблем.

5 ответов


вы можете быть администратором на рабочей станции, но это ничего не значит для SQL-сервера. Для выполнения указанных действий Ваш логин должен быть членом роли sysadmin. По умолчанию локальная группа администраторов больше не добавляется к роли sysadmin в SQL 2008 R2. Вам нужно будет войти в систему с чем-то другим (например, sa), чтобы предоставить себе разрешения.


опоздать на вечеринку, но я нашел это фантастический шаг за шагом руководство при получении контроля над экземпляром SQLExpress, если у вас нет пароля sa. Я использовал этот процесс не только для сброса пароля sa, но и для добавления учетной записи домена ко всем доступным ролям сервера. Теперь я могу создавать базы данных, изменять логины, выполнять массовые операции, резервное копирование/восстановление и т. д., Используя мой обычный логин.

подводя итог, вы используете диспетчер конфигурации SQL Server для размещения экземпляр в однопользовательский режим. Это поднимает вас до sysadmin при подключении, что позволяет вам настроить все.

Edit: я скопировал шаги ниже-kudos оригинальному автору ссылки выше.

  1. войдите в систему как администратор (или любой пользователь с правами администратора)
  2. открыть "Диспетчер конфигурации SQL Server"
  3. нажмите "службы SQL Server" на левой панели
  4. остановить " SQL Server" и экземпляр "агент SQL Server" на правой панели, если он работает
  5. запустите SQL Express в однопользовательском режиме, щелкнув правой кнопкой мыши экземпляр "SQL Server" - > свойства (на правой панели диспетчера конфигурации SQL Server).
  6. нажмите вкладку Дополнительно и найдите "параметры запуска". Измените "параметры запуска" так, чтобы новое значение было -m; (без ) образец: от: - dc:\Program Files\Microsoft SQL.............(до конца строки) Кому: - m; - dc:\Program Файлы\Microsoft SQL.............(до конца строки)
  7. запустите SQL Server
  8. откройте MS SQL Server Management Studio и войдите в SQL server с" аутентификацией Windows " в качестве режима аутентификации. Поскольку у нас SQL Server работает в однопользовательском режиме, и вы вошли в систему с правами администратора, у вас будет доступ "sysadmin" к базе данных.
  9. разверните узел "безопасность" в MS SQL Server Management Studio на левая панель
  10. разверните узел "логины"
  11. дважды щелкните " sa " login
  12. измените пароль, введя сложный пароль, если установлен флажок "применить политику паролей", в противном случае просто введите любой пароль.
  13. убедитесь, что учетная запись" sa "включена, нажав на статус на левой панели. Установить радио поле "Логин" на "Enabled"
  14. нажмите "OK"
  15. вернуться в Главное окно MS SQL Server Management Studio, проверьте, используется ли проверка подлинности SQL Server, щелкнув правой кнопкой мыши на верхнем узле в левой области (обычно ".\SQLEXPRESS (SQL Server)") и выбор свойств.
  16. нажмите " Безопасность "в левой панели и убедитесь, что" режим проверки подлинности SQL Server и Windows "выбран в разделе"Проверка подлинности сервера"
  17. нажмите "OK"
  18. отключитесь от MS SQL Server Management Studio
  19. снова откройте "Диспетчер конфигурации Sql Server" и остановите SQL Экземпляр сервера.
  20. щелкните правой кнопкой мыши экземпляр SQL Server и перейдите на вкладку" Дополнительно". Снова найдите " параметры запуска "и удалите"- m;", который вы добавили ранее.
  21. нажмите " ОК " и запустите экземпляр SQL Server еще раз
  22. теперь вы сможете войти в систему как "sa", используя новый пароль, который вы установили на шаге 12.

в SSMS 2012 вам придется использовать:

чтобы включить однопользовательский режим, в свойствах экземпляра SQL не переходите к тегу "Advance", уже есть тег" параметры запуска".

  1. добавить "- m; " в параметры;
  2. перезапустите службу и войдите в этот экземпляр SQL с помощью проверки подлинности windows;
  3. остальные шаги такие же, как выше. Измените разрешение учетной записи пользователя windows в security или сбросьте пароль учетной записи SA.
  4. последние, удалить параметр"- m " из "параметры запуска";

Я последовал шагам в ответе killthrush, и, к моему удивлению, это не сработало. Войдя в СА я видел домен моего пользователя Windows и заставила их сисадмином, но когда я попытался войти с окна авторизации не войти под логином, не могу создавать базы данных и т. д. И тут меня осенило. этот логин, вероятно, был привязан к другой учетной записи домена с тем же именем (с каким-то внутренним/скрытым идентификатором, который был неправильным). Я покинул эту организацию некоторое время назад а потом вернулся через несколько месяцев. Вместо повторной активации моей старой учетной записи (которую они могли удалить) они создали новую учетную запись с тем же доменом\username и новым внутренним идентификатором. Используя sa, я удалил свой старый логин, повторно добавил его с тем же именем и добавил sysadmin. Я вошел в систему с помощью Windows Auth, и все выглядит так, как должно. Теперь я вижу свои логины (и другие) и могу делать все, что мне нужно, как sysadmin, используя мой вход в систему Windows auth.


у меня есть 2 учетные записи на моей машине Windows, и я испытывал эту проблему с одним из них. Я не хотел использовать sa учетная запись, я хотел использовать Windows login. Мне не сразу стало ясно, что мне нужно просто войти в другую учетную запись, которую я использовал для установки SQL Server, и добавить разрешения для новой учетной записи оттуда

(SSMS > Security > Logins > Add a login there)

простой способ получить полное доменное имя, которое вам нужно добавить, откройте cmd echo каждый один.

echo %userdomain%\%username%

добавьте логин для этого пользователя и дайте ему все разрешения для master db и других баз данных, которые вы хотите. Когда я говорю "все разрешения", убедитесь, что не проверяете ни одно из разрешений" запретить", так как это будет делать обратное.