SQL Server インストール時にローカル管理者をSQLServerの管理者に追加し忘れた場合に後から管理者ロールに登録する方法

samatsu 7/25/2020 14148 N/A SQL Server

SQLEXPRESSがインストールされている環境を使用しているのですが、Administratorや開発用のユーザーがSQLEXPRESSの管理者ユーザーロールのメンバーになっていないので、追加する方法を調べました。ちなみにsaユーザーのパスワードは不明な環境です。saパスワード不明とかそんな環境あるのかよと思われるかもしれませんが、とりあえずそういう状況なのです。

環境は確か SQL Server 2017 EXPRESS エディションです。この記事を参考にすることがある場合は、SQL Serverのインスタンス名などは適宜読み替えてください。

1. SQLServer サービスの停止

SQL Server Configuration Manager を起動して、SQL Server を停止します。

2. SQL Serverをシングルユーザーモードで起動

SQL Serverをシングルユーザーの管理者モードで起動します。 コマンドプロンプトを起動し、sqlserver.exe があるフォルダーに移動します。

例えば、C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Binn です。sqlserver.exe -m オプションを指定して、起動します。私の環境の場合は、SQL EXPRESS を使用していたので、 -s オプションで、SQLEXPRESSのインスタンス名を指定しています。これ要らなかったかもしれません。

sqlservr.exe -s SQLEXPRESS -m

3. ローカル管理者をsysadminロールに追加

今回は、Administrator ユーザーをsysadmin ロールのメンバーにします。 sqlserverを起動したコマンドプロンプトとは別にコマンドプロンプトを起動します。 同じように binn フォルダーに移動し、sqlcmd.exe を実行します。

sqlcmd -S (local)\SQLEXPRESS -E

SQL Serverにログインしたら、例えば次のようなコマンドで、Administratorをsysadminに追加します。<machinname>はマシン名に置き換えてください。

CREATE LOGIN [<machinname>\Administrator] FROM WINDOWS
GO
EXEC sp_addsrvrolemember '<machinname>\Administrator' , 'sysadmin'
GO

これで完了です。コマンドプロンプトを終了し、停止した SQL Serverのサービスを再開します。

私の環境では念のため、マシンを再起動しました。

この手順で、インストール時にWindowsユーザーを管理者に追加した忘れた場合でも後から、sysadminロールのメンバーに追加することができます。