Заметки · 19.06.2026

Истины прописью

Сегодняшний вечер посвящу MSSQL, хотя и планировалось что-то более творческое.

Случилось мне попасть в ситуацию, когда я понятия не имел ни о паролях, ни о логинах, как самого сервера баз данных, так и его отдельно взятого экземпляра. Благо, что всё это происходило в рамках домена Active Directory.

Пароль от sa я решил не менять и множить локальных администраторов тоже не стал. Решил повысить самого себя до ранга sysadmin СУБД и со спокойной совестью пойти заваривать чай.

Для начала останавливаем все процессы работы с базой данных или же планируем мероприятие на более спокойное время и останавливаем службу MSSQLSERVER:

net stop MSSQLSERVER

Запускаем службу в монопольном режиме:

net start MSSQLSERVER /m "SQLCMD"

Подключаемся к консоли сервера:

sqlcmd -S localhost -E

Теперь вводим по очереди следующие SQL-команды:

CREATE LOGIN [your_domain\your_login] FROM WINDOWS;
EXEC sp_addsrvrolemember 'your_domain\your_login', 'sysadmin';
GO
EXIT

Только замените конструкцию your_domain\your_login на корректные данные.

Осталось — перезапустить службу сервера, но уже в привычном режиме:

net stop MSSQLSERVER
net start MSSQLSERVER

Этот метод отлично подходит и для конкретного экземпляра:

net stop MSSQL$EXAMPLE
net start MSSQL$EXAMPLE /m "SQLCMD"

sqlcmd -S localhost\EXAMPLE -E

CREATE LOGIN [your_domain\your_login] FROM WINDOWS;
EXEC sp_addsrvrolemember 'your_domain\your_login', 'sysadmin';
GO
EXIT

net stop MSSQL$EXAMPLE
net start MSSQL$EXAMPLE

В этом примере я добавил пользователя Windows в администраторы экземпляра EXAMPLE.