Как восстановить пароль пользователя MSSQL?

Передо мной была поставлена ​​задача перевести нас с десятилетней системы (Access '97) на совершенно новую систему с использованием MS SQL Express 2008 в качестве бэкэнда. Так здорово, я знаю, что могу подключиться к базе данных (успешно с пользователем только для чтения), единственная проблема в том, что... У меня нет пользователя в базе данных с доступом для записи, и у нас нет доступа к источнику чтобы приложение узнало, какой пароль использует приложение (хотя у меня есть имя пользователя).

Итак, насколько я понимаю, у меня есть два варианта:

  • Восстановите пароль для пользователя, который приложение использует неразрушающим (или отменяемым) способом.
  • Вставьте дополнительного администратора в базу данных, которую я затем смогу использовать в качестве пользователя импорта данных.

Являются ли какие-либо из этих вариантов жизнеспособными и / или возможными, и как мне поступить с одним или обоими из них, учитывая тот факт, что я сижу перед компьютером с полным доступом, чтобы делать что угодно.

2 ответа

Как правило, это делается путем запуска SQL Server в однопользовательском режиме и вставки нового пользователя с правами администратора SQL, который затем можно использовать для получения полного доступа. Я не буду менять пароль sa, пока вы не узнаете, использует ли приложение его или нет.

Вот ссылка с инструкциями и снимками экрана, чтобы сделать это с обычным SQL Server. Чтобы перевести SQL Express в однопользовательский режим и открыть окно запроса, выполните примерно так:

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn> Sqlservr.exe -s SQLEXPRESS -m
C:\Program Files\Microsoft SQL Server\90\Tools\Binn> sqlcmd -S.\SQLExpress

Редактировать (в случае гниения ссылок): как только у вас откроется окно запроса в однопользовательском режиме, вы сможете добавить логин администратора сервера, который вы можете использовать:

CREATE LOGIN MYADMIN WITH PASSWORD='myadminpassword'
SP_ADDSRVROLEMEMBER 'MYADMIN', 'SYSADMIN'

В вашем случае логины SQL включены, или вы не сможете использовать свой логин только для чтения, но для других им может потребоваться убедиться, что логины SQL включены, проверив или отредактировав свой реестр (заменив MSSQL.1 на какой бы экземпляр вы ни использовали) после, но, скорее всего, это.1). поместите это в файл.reg и запустите его (или используйте RegEdit):

-------------COPY BELOW---------------------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer]
"LoginMode"=dword:00000002
-------------COPY TILL THIS---------------------------------

И, наконец, если ваш логин sa отключен, и вы хотите включить его (но не делайте этого, если ваше приложение использует sa или вы можете сломать все это):

ALTER LOGIN sa ENABLE ;
GO
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>' ;
GO

Я не уверен на 100%, что вы спрашиваете. Похоже, ваше приложение использует жестко закодированные имя пользователя и пароль?!?!?

Если ваша проблема заключается в простом сбросе учетной записи "sa" для SQL Server, вот как вы можете сбросить пароль "sa" (при условии, что у вас есть физический доступ к этому блоку).

  1. Войдите на физический компьютер как администратор.

  2. Запустите SQL Server Enterprise Manager.

  3. Щелкните правой кнопкой мыши имя сервера и выберите "Изменить свойства регистрации SQL Server".

  4. Выберите "Использовать проверку подлинности Windows" и нажмите "ОК".

  5. Разверните сервер, разверните "Безопасность" и нажмите "Вход".

  6. Дважды щелкните логин sa и укажите новый пароль на вкладке General.

Другие вопросы по тегам