Сегодняшний вечер посвящу 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.