Разрешения SQL Server 2008 R2 Express - невозможно создать базу данных или изменить пользователей
Недавно только что обновили до SQL Server 2008 R2 Express. Когда я пытаюсь создать базу данных после входа в систему с использованием аутентификации Windows с моим идентификатором myuser, я получаю эту ошибку:
Возникла исключительная ситуация при выполнении оператора или пакета Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
В базе данных 'master' отказано в разрешении CREATE DATABASE. RESTORE HEADERONLY прерывается ненормально Ошибка 262
Если я пытаюсь добавить роль sysadmin в myuser, я получаю следующую ошибку:
Не удалось добавить участника для ServerRole 'sysadmin'. (Microsoft.SqlServer.Smo)
Возникла исключительная ситуация при выполнении оператора или пакета Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)
У пользователя нет прав на выполнение этого действия Ошибка 15247
Если я попытаюсь добавить эту роль своему пользователю с помощью T-SQL, используя эту команду,
EXEC sp_addsrvrolemember 'ziffenergy\myuser', 'sysadmin';
GO
Вот ошибка, которую я получаю:
Сообщение 15247, уровень 16, состояние 1, процедура sp_addsrvrolemember, строка 29
Пользователь не имеет разрешения на выполнение этого действия.
У кого-нибудь есть предложения? Кажется, что я ничего не могу сделать с базой данных на локальной машине. Обратите внимание, что я являюсь администратором на рабочей станции Windows 7, которую я использую, и если я пытаюсь создать или изменить базы данных и/или пользователей на нашем сетевом сервере баз данных IT Test с помощью SQL Server Management Studio, я могу сделать это без проблем.
Ответы
Ответ 1
Вы можете быть администратором на рабочей станции, но это не означает ничего для SQL Server. Ваш логин должен быть членом роли sysadmin для выполнения соответствующих действий. По умолчанию группа локальных администраторов больше не добавляется в роль sysadmin в SQL 2008 R2. Вам нужно будет войти в систему с чем-то другим (например, sa), чтобы предоставить себе разрешения.
Ответ 2
Поздняя вечеринка, но я нашел это фантастическое пошаговое руководство о том, как получить контроль над своим экземпляром SQLExpress, t иметь свой пароль sa. Я использовал этот процесс не только для reset моего пароля sa, но также добавил свою учетную запись домена ко всем доступным ролям сервера. Теперь я могу создавать базы данных, изменять логины, выполнять массовые операции, создавать резервные копии/восстановление и т.д., Используя мой обычный логин.
Подводя итог, вы используете диспетчер конфигурации SQL Server, чтобы разместить экземпляр в однопользовательском режиме. Это приводит к тому, что вы подключаетесь к sysadmin, позволяя вам настроить все.
Изменить: я скопировал приведенные ниже шаги - к сожалению, оригинальному автору ссылки выше.
- Войдите в систему в качестве администратора (или любого пользователя с правами администратора)
- Откройте "Диспетчер конфигурации SQL Server"
- Нажмите "Службы SQL Server" на левой панели
- Остановить экземпляр "SQL Server" и "Агент SQL Server" на правой панели, если он запущен
- Запустите SQL Express в однопользовательском режиме, щелкнув правой кнопкой мыши на экземпляре "SQL Server" → "Свойства" (в правой панели диспетчера конфигурации SQL Server).
- Нажмите вкладку "Дополнительно" и найдите "Параметры запуска" . Измените "Параметры запуска" , чтобы новое значение было -m; (без < > )
пример:
from: -dc:\Program Files\Microsoft SQL............. (до конца строки)
to: -m; -dc:\Program Files\Microsoft SQL............. (до конца строки)
- Запустите SQL Server
- Откройте свою студию управления MS SQL Server и войдите на SQL-сервер с "Аутентификацией Windows" в качестве режима проверки подлинности. Поскольку у нас есть SQL Server, работающий в однопользовательском режиме, и вы вошли в систему с правами администратора, у вас будет доступ к базе данных "sysadmin".
- Разверните "Безопасность" node в MS SQL Server Management Studio на левой панели
- Разверните "Логины" node
- Дважды щелкните по имени 'sa'
- Измените пароль, введя сложный пароль, если установлен флажок "Использовать политику пароля", иначе просто введите любой пароль.
- Убедитесь, что учетная запись "sa" включена, щелкнув "Состояние" на левой панели. Установите переключатель в поле "Вход" в положение "Включено"
- Нажмите "ОК"
- В главном окне MS SQL Server Management Studio проверьте, используется ли проверка подлинности SQL Server, щелкнув правой кнопкой мыши самую верхнюю часть node на левой панели (обычно ".\SQLEXPRESS (SQL Server)" ) и выбрав свойства.
- Нажмите "Безопасность" на левой панели и убедитесь, что "SQL Server и Windows Authentication mode" - это тот, который выбран в разделе "Аутентификация сервера"
- Нажмите "ОК"
- Отключиться от Microsoft SQL Server Management Studio
- Откройте "Sql Server Configuration Manager" еще раз и остановите экземпляр SQL Server.
- Щелкните правой кнопкой мыши экземпляр SQL Server и перейдите на вкладку "Дополнительно". Снова найдите "Параметры запуска" и удалите "-m;" которые вы добавили ранее.
- Нажмите "ОК" и снова запустите экземпляр SQL Server
- Теперь вы можете войти в систему как "sa", используя новый пароль, который вы установили на шаге 12.
Ответ 3
В SSMS 2012 вам нужно будет использовать:
Чтобы включить однопользовательский режим, в свойствах экземпляра SQL, НЕ переходите к тегу "Advance", уже есть тег "Параметры запуска".
- Добавить "-m;" в параметры;
- Перезапустите службу и выполните вход в этот экземпляр SQL с помощью проверки подлинности Windows;
- Остальные шаги такие же, как указано выше. Измените разрешение учетной записи пользователя Windows в безопасности или пароль reset SA.
- Наконец, удалите параметр "-m" из "параметров запуска";
Ответ 4
Я последовал за шагами в ответном убийстве и, к моему удивлению, это не сработало. Вход в систему как sa я мог видеть своего пользователя домена Windows и сделал их sysadmin, но когда я попытался войти в систему с помощью Windows auth, я не мог видеть свой логин под логинами, не мог создавать базы данных и т.д. Затем он ударил меня. Этот логин, вероятно, был привязан к другой учетной записи домена с тем же именем (с каким-то внутренним/скрытым идентификатором, который был неправильным). Я покинул эту организацию некоторое время назад, а затем вернулся через несколько месяцев позже, Вместо повторной активации моей старой учетной записи (которую они могли удалить) они создали новую учетную запись с тем же именем домена \username и новым внутренним идентификатором. Используя sa, я удалил свой старый логин, повторно добавил его с тем же именем и добавил sysadmin. Я вошел в систему с Windows Auth, и все выглядит так, как должно. Теперь я могу видеть свои логины (и другие) и могу делать все, что мне нужно, в качестве sysadmin, используя мой Windows auth login.
Ответ 5
У меня есть 2 аккаунта на моем компьютере с Windows, и я столкнулся с этой проблемой с одним из них. Я не хотел использовать учетную запись sa
, я хотел использовать Windows login. Для меня не сразу стало очевидным, что мне нужно просто войти в другой аккаунт, который я использовал для установки SQL Server, и добавить разрешения для новой учетной записи оттуда
(SSMS > Security > Logins > Add a login there)
Простой способ получить полное доменное имя, которое вам нужно добавить, чтобы открывать cmd эхо каждого.
echo %userdomain%\%username%
Добавьте логин для этого пользователя и дайте ему все допустимые разрешения для master db и других баз данных, которые вы хотите. Когда я говорю "все разрешения", НЕ проверяйте какие-либо разрешения "deny", поскольку это будет делать обратное.