SQL Server - sa アカウントのロック解除方法
sa アカウントがロックされた!
今回は sa アカウントがロックされて、SQL Server に sa アカウントで接続できない!というような状況になった時の解除方法と、アカウントがロックされないようにする方法についてです。
ここでは他の sysadmin ロールのメンバーで SQL Server にログインできる状態を想定しています。
完全にロックアウトされてログインできない時の対処方法
パスワードを変更せずに sa アカウントのロックを解除する
sa のパスワードを変更せずに sa アカウントのロックを解除してみましょう。
まず、SQL Server Management Studio で SQL Server に sysadmin のメンバーであるユーザーでログインします。
クエリエディターを開き、以下のスクリプトを実行すると、パスワードはそのままで sa アカウントのログインのロックが解除されます。
ALTER LOGIN sa WITH CHECK_POLICY = OFF; ALTER LOGIN sa WITH CHECK_POLICY = ON;
このスクリプトでは、 sa のパスワードポリシーの適用を一度 OFF にして ON に戻すことによってロックを解除しています。
アカウントがロックされる理由
sa アカウントに関わらずですが、アカウントがロックされる理由は、そのログインの [パスワードポリシーを適用する] がオンになっているからです。
オブジェクトエクスプローラの [セキュリティ] > [ログイン] で sa アカウントを右クリックし、[プロパティ]をクリックします。
[全般] のページの[パスワードポリシーを適用する] でオン・オフを確認することができます。
[パスワードポリシーを適用する] がオンの時は、SQL Server を実行しているコンピューターの Windows のパスワードポリシーが適用され、何回もログインに失敗するとアカウントがロックされてしまいます。
このチェックを一度オフにして OK をクリックし、オンに戻して OK をクリックすることによって、先ほどのスクリプトと同様のことを UI から実行することができます。
そのログインユーザーにパスワードポリシーを適用する必要がない場合は、オフのままにしておけば、ロックされなくなります。
ロックされているかどうかはログインユーザーの [プロパティ]の [ステータス] ページで確認できます。
ここからもアカウントのロックを解除できますが、[ログインをロックアウトする] のチェックボックスをオフにして OK をクリックすると、パスワードをリセットするようにというエラーが出ます。
[全般]ページにいって、パスワードを入力しなおしてから OK をクリックしてください。
今回説明した解除方法などは、sa アカウントだけでなく、他のログインユーザーでも同様です。
スクリプトを実行する際は、次のように sa の部分を、ロックを解除したいログインユーザー名に置き換えて実行してくださいね!
ALTER LOGIN [ログインユーザー名] WITH...