Microsoft SQL Server 2008以降、デフォルトでは、ローカル管理者のグループはインストール中にSQLServer管理者に追加されなくなりました。これは手動でのみ実行できます。
その結果、インストール中またはインストール後に管理者のグループが追加されなかった場合、SQLServerへの管理アクセスが失われる状況があります。これは、インストールを実行したユーザーが不明であるか、同じアカウントのパスワードが失われた場合、または前のデータベース管理者が終了し、SQLServerの管理者権限を持つ唯一のWindowsアカウントが削除された場合に発生する可能性があります。 。
通常、この場合、シングルユーザーのSQLServerを再起動する通常のメカニズムが使用されます。ただし、このアプローチにはある程度のダウンタイムが必要であり、一部のシステムではこれは受け入れられません。
特定の条件が満たされた場合、ダウンタイムなしでこの問題を解決する非常に簡単な方法があります。多くの人がMarkRussinovichのユーティリティであるWindowsSysinternalsを聞いて使用しています。このセットには、ローカルマシンまたはリモートマシンでプロセスを開始できるPsExecユーティリティが含まれています。
このユーティリティの利点の1つは、 NT AUTHORITY\SYSTEMアカウントに代わってプロセスを実行できることです。 、「通常の」管理者アカウントとは異なり、デフォルトでSQLServerにアクセスできます。
この方法を機能させるには、SQL ServerでWindows認証を有効にして、NTアカウントAUTHORITY \ SYSTEMとして実行する必要があります。そうでない場合、NTアカウントAUTHORITY \ SYSTEMは、sysadminではなくパブリック権限のみを持ちます。
SQLServerへの管理アクセスを復元するための準備
1.SQLServerサービスがNTアカウントAUTHORITY\SYSTEMに代わって実行されていることを確認します。
2. SQL Server Management Studio(SSMS)の現在のバージョンをダウンロードしてSQLサーバーにインストールします(例:ここ)
3.アーカイブをダウンロードしてSQLサーバーに解凍します。たとえば、PSToolsなどの現在のバージョンのPsToolsユーティリティセット(PsExecが含まれています)。
SQLServer管理者への追加
1. SQLサーバーで昇格された権限でコマンドラインを実行し(Shiftキーを押しながら右クリックして[管理者として実行])、PsExecユーティリティが解凍されているフォルダーに移動します。
2.以下のコマンドを実行して、ManagementStudioへの実際のパスを修正します。
PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
設定:
- -i –インタラクティブモードでプロセスを開始する必要があることを示します
- -s –NTシステムアカウントAUTHORITY\SYSTEMに代わってプロセスを実行する必要があることを示します。
おおよそ次のように表示されます(最初の起動時に、ライセンス契約のウィンドウが表示されます):
SSMSが起動します。
3 [接続]をクリックすると、サーバーに接続してオブジェクトのリストを表示できます。
4.次に、[セキュリティ]> [ログイン]に移動し、システム管理者としてアカウントを追加し、同じパスワードを更新します。通常、インスタンスを管理しやすくするために必要なすべてのことを行います。
ログインしてシステム管理者としてアカウントを追加し、saパスワードを更新します。通常、インスタンスを管理しやすくするために必要なすべてのことを行います。” width =” 300” height =” 160” title =””>
この方法にはいくつかの制限がありますが、データベースサーバーを停止せずにSQLサーバー管理を復元できます。