2月 2, 2022

MICROSOFT SQL ServerでSAパスワードをリセットするにはどうすればよいですか?

この記事では、Microsoft SQL Server2019/2017/2014/2012でSA(システム管理者)パスワードをリセットする方法を見ていきます。 このガイドでは、saアカウントを使用して認証できない場合(saパスワードが忘れられた/失われた/アカウントが無効になった)、またはWindowsユーザーとして(MS SQL sysadminパー

ローカルsaは、SQL Serverではよく知られている管理者アカウントです。 ほとんどの場合、無効になっていますが、有効にしたり、パスワードを設定/リセットしたり、SQL Serverへのアクセスを復元したりできます。

MS SQLインスタンスを完全に再インストールせずに(およびmasterデータベースが失われて)データベースへのアクセスを復元するには、SQL Serverをシングルユーザーモードで起動 このモードでは、MS SQL Serverがインストールされているコンピュータ上のローカル管理者権限を持つ任意のアカウントでSQL Serverにログインできます。 その後、saアカウントのパスワードをリセットしたり、特定のWindowsアカウントに管理者権限を付与したりできます。

SQL Server2008以降では、SQL serverのsysadminロールは、既定ではローカルのWindows Administratorsグループに割り当てられません。 MS SQL Serverをシングルユーザーモードで実行するには、Windowsのローカル管理者権限を持つ任意のアカウントでMSSQLホストにサインインします。

  1. コマンドプロンプトnet stop MSSQLSERVERまたはPowerShellを使用して、SQL Serverインスタンスを停止します(この例では、MSSQLインスタンス名はMSSQLSERVERです)。: Get-Service MSSQLSERVER| Stop-Servicecli経由でMSSQLSERVERを停止
  2. レジストリエディタ(regedit.exe)を開き、SQLサービスレジストリキーに移動します。HKEY_LOCAL_MACHINE\SYSTEM\Controlset001\Services\MSSQLSERVER;
  3. Sqlservrの引数として-mオプションを追加して、ImagePathパラメータの値を変更します。exe”を起動します。 たとえば、次の起動文字列を設定します。"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m sql serverレジストリを使用してシングルユーザーモードで実行
  4. SQL Serverを起動します: net start MSSQLSERVER
  5. SQL Serverがシングルユーザーモードで実行され、ローカルAdministratorsグループのメンバー(または組み込みのWindows管理者)がsysadmin権限でSQL Serverインスタンスに接続できるようになりま4847>
  6. セキュリティ->ログインに移動し、saユーザーを見つけます。 Saユーザーはデフォルトで無効になっています; saユーザーはMS SQL Serverでデフォルトで無効になっています
  7. そのプロパティを開き、[全般]タブに移動し、新しいSAパスワードを設定します。 次に、[ステータス]タブでこのアカウントを有効にします(ログイン->有効);SQL Server:RESET SA Password
  8. ローカルSQLアカウント(saを含む)でMSSQLへの接続を許可するには、[セキュリティ]タブの[サーバーのプロパティ]でSQL ServerとWindows認証モードを有効にする必要があります。 それ以外の場合は、ローカルsaアカウントで接続すると、エラーが表示されます:
    Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

    MSSQLでサーバーおよびWindows認証モード認証を有効にする

  9. また、ログインセクションでは、必要なWindowsユーザー(ローカルまたはドメイン)を追加し、彼にSysadmin toleを割り当てることができます([サーバーロール]タブ)。 または、sqlcmd cliからユーザーにロールを追加できます:
    EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
    GO

    windowsユーザーにsql server sysadminロールを付与する
  10. MSSQLサービスを再度停止し、”-m”スイッチを削除してImagePartレジストリパラメータの初期値を返します(C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER);
  11. SQL Serverサービスを通常どおり起動します;
  12. Sql Server認証モードのsaアカウントまたはsql Serverでsysadmin権限を付与したWindowsユーザーアカウントでSQL serverに接続できるようになりました。
Sql Server構成マネージャーを使用して、SQL Serverをシングルユーザーモードで起動できます。 これを行うには、必要なSQLインスタンスのプロパティのスタートアップパラメータタブに移動し、–m起動オプションを追加します。

また、sqlcmdコマンドラインツールを使用してSAパスワードをリセットし、SQL Serverへのアクセスを許可することもできます:

  1. 上記のように、SQL Serverをシングルユーザーモードで起動します。
  2. コマンドプロンプトを開き、SQL Serverインスタンスに接続します: sqlcmd –S localhost
  3. SAユーザーのパスワードを変更して有効にするには、次のT-SQLコマンドを実行します:
    ALTER LOGIN sa enable
    GO
    ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
    GO
  4. MSSQLでwindowsアカウント(この例ではローカルユーザー)のsysadminアクセス許可を付与するには、次のコマンドを使用します:
    CREATE LOGIN FROM WINDOWS
    GO
    ALTER SERVER ROLE sysadmin ADD MEMBER
    GO

この記事では、シングルユーザーモードでSQL Serverへのアクセスを復元する方法を示しました。 このモードでは、sa(および他のSQLユーザー)のパスワードをリセットしたり、WINDOWSユーザーアカウントにSQL管理者権限を付与したりできます。 シングルユーザーモードを使用して、mssqlサーバーのtemdbデータベースを復元することもできます。

コメントを残す

メールアドレスが公開されることはありません。