В этой статье описывается, как восстановить доступ к Компонент SQL Server Database Engine в качестве системного администратора, если доступ был заблокирован. Системный администратор может утратить доступ к экземпляру SQL Server по одной из следующих причин:
- по ошибке удалены все члены предопределенной роли сервера sysadmin;
- по ошибке удалены все группы Windows, которые являлись членами предопределенной роли сервера sysadmin;
- имена входа, являющиеся членами предопределенной роли сервера sysadmin, принадлежат лицам, которые покинули компанию или недоступны;
- учетная запись sa отключена, или никто не знает ее пароля.
Решение
Чтобы устранить проблему доступа, рекомендуется запустить экземпляр SQL Server в однопользовательском режиме. Этот режим не позволит устанавливать другие подключений при попытке восстановить доступ. Вы можете подключиться к экземпляру SQL Server и добавить имя входа в роль сервера sysadmin.
Можно запустить экземпляр SQL Server в однопользовательском режиме с параметрами -m
или -f
из командной строки. Затем любой член локальной группы администраторов на компьютере может подключиться к экземпляру SQL Server в качестве члена предопределенной роли сервера sysadmin.
При запуске экземпляра в однопользовательском режиме сначала нужно остановить службу «Агент SQL Server». В противном случае агент SQL Server может установить соединение первым, заняв единственное доступное подключение к серверу и заблокировав возможность входа.
Кроме того, неизвестное клиентское приложение может воспользоваться единственным доступным подключением, прежде чем вы сможете выполнить вход. Чтобы исключить возникновение этой ситуации, используйте параметр -m
, за которым следует имя приложения, что позволит ограничить подключения одним подключением из определенного приложения. Например, запуск SQL Server с помощью -mSQLCMD
разрешает только одно соединение, которое должно идентифицироваться как клиентская программа sqlcmd. Для подключения через редактор запросов в Среда Management Studio используйте -m"Microsoft SQL Server Management Studio - Query"
.
Важно! Не используйте -m
с именем приложения в качестве средства безопасности. Клиентские приложения предоставляют имя приложения в параметрах строки подключения и могут легко указать ложное имя.
В следующей таблице приведены различные способы запуска экземпляра в однопользовательском режиме в командной строке.
Параметр | Описание | Назначение |
---|---|---|
-m |
Ограничение подключений одним подключением | Если другие пользователи не пытаются подключиться к экземпляру или вы не знаете имя приложения, которое используется для подключения к экземпляру. |
-mSQLCMD |
Разрешает только одно соединение, которое должно идентифицироваться как клиентская программа sqlcmd. | Если вы планируете подключиться к экземпляру с помощью sqlcmd и хотите запретить другим приложениям использовать единственное доступное подключение. |
-m"Microsoft SQL Server Management Studio - Query" |
Разрешает только одно соединение, которое должно идентифицироваться как приложение Microsoft SQL Server приложении Management Studio — Query. | Если вы планируете подключиться к экземпляру с помощью редактора запросов в Среда Management Studio и хотите запретить другим приложениям использовать единственное доступное подключение. |
-f |
Разрешает только одно соединение и запускает экземпляр в минимальной конфигурации. | Когда запуску препятствует какая-либо другая конфигурация. |
Пошаговые инструкции
Далее приводятся пошаговые инструкции по предоставлению системному администратору, доступ которого было по ошибке заблокирован, разрешений для входа в SQL Server.
Предварительные требования
- SQL Server запущен в Windows 8 или более поздней версии. Небольшие изменения для предыдущих версий SQL Server или Windows приведены там, где применимо.
- На компьютере установлена среда SQL Server Management Studio.
Следуйте этим инструкциям, выполнив вход в систему Windows в качестве члена локальной группы администраторов.
- В меню «Пуск» Windows правой кнопкой мыши щелкните значок диспетчера конфигурации SQL Server и выберите пункт Запуск от имени администратора, чтобы передать учетные данные администратора в диспетчер конфигурации.
- На левой панели диспетчера конфигурации SQL Server выберите Службы SQL Server. На панели справа найдите свой экземпляр SQL Server. (Экземпляр по умолчанию SQL Server включает (MSSQLSERVER) после имени компьютера. Именованные экземпляры появляются в верхнем регистре с тем же названием, что и в списке «зарегистрированные серверы»). Щелкните правой кнопкой мыши экземпляр SQL Server, а затем выберите пункт Свойства.
- На вкладке Параметры запуска в поле Укажите параметр запуска введите параметр
-m
и нажмите кнопку Добавить. (Это дефис, затем буква «m» в нижнем регистре.)
Примечание. В некоторых предыдущих версиях SQL Server нет вкладки Параметры запуска . В этом случае на вкладке Дополнительно дважды щелкните Параметры запуска. Параметры открываются в очень маленьком окне. Не изменяйте существующие параметры. В самом конце добавьте новый параметр ;-m
и нажмите кнопку ОК. (Это точка с запятой, затем дефис, затем буква «m» в нижнем регистре.)
4. Нажмите кнопку ОК, а после сообщения о перезагрузке щелкните правой кнопкой мыши имя сервера и выберите пункт Перезапустить.
5. После перезагрузки SQL Server ваш сервер находится в однопользовательском режиме. Убедитесь, что агент SQL Server не выполняется. Если он был запущен, то он займет ваше единственное соединение.
6. В меню «Пуск» Windows щелкните правой кнопкой мыши значок Среда Management Studio и выберите пункт Запуск от имени администратора. Учетные данные администратора будут переданы в SSMS.
Примечание. В более ранних версиях Windows параметр Запуск от имени администратора появляется в виде подменю.
В некоторых конфигурациях SSMS попытается установить несколько подключений. Многочисленные соединения приведут к ошибке, поскольку SQL Server находится в однопользовательском режиме. Выполните одно из следующих действий, соответствующее вашему сценарию.
a. Подключитесь с помощью обозревателя объектов, используя проверку подлинности Windows (которая включает учетные данные администратора). Разверните Безопасность, затем Имена входа и дважды щелкните имя входа. На странице Роли сервера выберите sysadmin и нажмите ОК.
b. Вместо соединения с помощью обозревателя объектов подключитесь с помощью окна запросов, используя проверку подлинности Windows (которая включает учетные данные администратора). (Подключиться подобным образом можно только в том случае, если подключение не выполнено с помощью обозревателя объектов.) Выполните следующий код, чтобы добавить новое имя входа для проверки подлинности Windows, которое является членом предопределенной роли сервера sysadmin . В следующем примере создается пользователь с именем CONTOSO\PatK
.
CREATE LOGIN [CONTOSO\PatK] FROM WINDOWS; ALTER SERVER ROLE sysadmin ADD MEMBER [CONTOSO\PatK];
c. Если экземпляр SQL Server работает в режиме смешанной проверки подлинности, подключитесь к окну запросов при помощи проверки подлинности Windows (которая включает учетные данные администратора). Выполните следующий код, чтобы создать новое имя входа для проверки подлинности в SQL Server, которое является членом предопределенной роли сервера sysadmin.
CREATE LOGIN TempLogin WITH PASSWORD = '************'; ALTER SERVER ROLE sysadmin ADD MEMBER TempLogin;
Предупреждение. Замените ************ надежным паролем.
d. Если экземпляр SQL Server работает в режиме смешанной проверки подлинности и требуется изменить пароль для учетной записи sa , подключитесь к окну запросов с использованием проверки подлинности Windows (которая включает учетные данные администратора). Измените пароль учетной записи sa с помощью следующей команды.
ALTER LOGIN sa WITH PASSWORD = '************';
Предупреждение. Замените ************ надежным паролем.
7. Закройте среду Среда Management Studio.
8. Следующие действия позволят переключить SQL Server в многопользовательский режим. На левой панели диспетчера конфигурации SQL Server выберите Службы SQL Server.
9. На правой панели щелкните экземпляр SQL Serverправой кнопкой мыши и выберите пункт Свойства.
10. На вкладке Параметры запуска в поле Существующие параметры выберите -m
и нажмите кнопку Удалить.
Примечание. В некоторых предыдущих версиях SQL Server нет вкладки Параметры запуска . В этом случае на вкладке Дополнительно дважды щелкните Параметры запуска. Параметры открываются в очень маленьком окне. Удалите ;-m
, добавленный ранее, и нажмите ОК.
11. Щелкните правой кнопкой мыши имя сервера и выберите пункт Перезапустить. Не забудьте запустить агент SQL Server еще раз, если он был остановлен перед запуском SQL Server в однопользовательском режиме.
Теперь можно подключиться к одной из учетных записей, которая является членом предопределенной роли сервера sysadmin .