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ホストにサインインします。
- コマンドプロンプト
net stop MSSQLSERVER
またはPowerShellを使用して、SQL Serverインスタンスを停止します(この例では、MSSQLインスタンス名はMSSQLSERVERです)。:Get-Service MSSQLSERVER| Stop-Service
- レジストリエディタ(
regedit.exe
)を開き、SQLサービスレジストリキーに移動します。HKEY_LOCAL_MACHINE\SYSTEM\Controlset001\Services\MSSQLSERVER; - Sqlservrの引数として-mオプションを追加して、ImagePathパラメータの値を変更します。exe”を起動します。 たとえば、次の起動文字列を設定します。
"C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER -m
- SQL Serverを起動します:
net start MSSQLSERVER
- SQL Serverがシングルユーザーモードで実行され、ローカルAdministratorsグループのメンバー(または組み込みのWindows管理者)がsysadmin権限でSQL Serverインスタンスに接続できるようになりま4847>
- セキュリティ->ログインに移動し、saユーザーを見つけます。 Saユーザーはデフォルトで無効になっています;
- そのプロパティを開き、[全般]タブに移動し、新しいSAパスワードを設定します。 次に、[ステータス]タブでこのアカウントを有効にします(ログイン->有効);
- ローカルSQLアカウント(saを含む)でMSSQLへの接続を許可するには、[セキュリティ]タブの[サーバーのプロパティ]でSQL ServerとWindows認証モードを有効にする必要があります。 それ以外の場合は、ローカルsaアカウントで接続すると、エラーが表示されます:
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)
- また、ログインセクションでは、必要なWindowsユーザー(ローカルまたはドメイン)を追加し、彼にSysadmin toleを割り当てることができます([サーバーロール]タブ)。 または、sqlcmd cliからユーザーにロールを追加できます:
EXEC sp_addsrvrolemember 'DOMAIN\Username', 'sysadmin';)
GO - MSSQLサービスを再度停止し、”-m”スイッチを削除してImagePartレジストリパラメータの初期値を返します(
C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe" -sMSSQLSERVER
); - SQL Serverサービスを通常どおり起動します;
- Sql Server認証モードのsaアカウントまたはsql Serverでsysadmin権限を付与したWindowsユーザーアカウントでSQL serverに接続できるようになりました。
Sql Server構成マネージャーを使用して、SQL Serverをシングルユーザーモードで起動できます。 これを行うには、必要なSQLインスタンスのプロパティのスタートアップパラメータタブに移動し、–m起動オプションを追加します。
また、sqlcmdコマンドラインツールを使用してSAパスワードをリセットし、SQL Serverへのアクセスを許可することもできます:
- 上記のように、SQL Serverをシングルユーザーモードで起動します。
- コマンドプロンプトを開き、SQL Serverインスタンスに接続します:
sqlcmd –S localhost
- SAユーザーのパスワードを変更して有効にするには、次のT-SQLコマンドを実行します:
ALTER LOGIN sa enable
GO
ALTER LOGIN sa WITH PASSWORD = 'new_sa_pass331'
GO - MSSQLでwindowsアカウント(この例ではローカルユーザー)のsysadminアクセス許可を付与するには、次のコマンドを使用します:
CREATE LOGIN FROM WINDOWS
GO
ALTER SERVER ROLE sysadmin ADD MEMBER
GO
この記事では、シングルユーザーモードでSQL Serverへのアクセスを復元する方法を示しました。 このモードでは、sa(および他のSQLユーザー)のパスワードをリセットしたり、WINDOWSユーザーアカウントにSQL管理者権限を付与したりできます。 シングルユーザーモードを使用して、mssqlサーバーのtemdbデータベースを復元することもできます。