Help us understand the problem. What is going on with this article?

SQL Server: パスワード変更時に「パスワードは最近変更したばかりです。」というエラーがでる挙動を調べてみた

背景

自分のパスワードは、以下のクエリで変更することが可能です。

ALTER LOGIN [ログイン名] WITH PASSWORD = '新しいパスワードをここに' OLD_PASSWORD = '今のパスワードをここに';

ただ、検証時に何度か連続でパスワードの変更を実施したところ以下のエラーが発生しました。
image.png
「パスワードの検証に失敗しました。このユーザーのパスワードは最近変更したばかりです。」

このエラーがでるとパスワードが更新できません。
この挙動について原因を調べてみました。

調査結果

DBが稼働しているサーバーにログインしてコマンドプロンプトを管理者として実行し、「rsop.msc」と入力して「ポリシーの結果セット」を開きます。
image.png
[Windowsの設定]-[セキュリティの設定]-[アカウントポリシー]-[パスワードのポリシー]と進むと、
「パスワードの変更禁止期間」が表示されます。

ソースGPOがDefault Domain Policyになっているため、パスワードのポリシーは、ドメインのグループポリシーで設定されていることが分かります。

最後にパスワード変更したタイミングから、ここで設定している日数(例えば3日)が経過するとパスワードの変更が可能となるようです。
ちなみに、日数が1日の場合は、24時間という意味で、2020/08/07 15:00にパスワードを変更した場合、次回変更可能となる日時は2020/08/08 15:00となります。

まとめ

パスワードを変更した際にでる「パスワードの検証に失敗しました。このユーザーのパスワードは最近変更したばかりです。」というエラーについて、関連している設定値「パスワードの変更禁止期間」を調べる方法について書きました。

※ただし、「パスワードポリシーを適用する」にチェックを入れていない場合は何度も変更できるようです。
image.png

maaaaaaaa
株式会社ZOZOテクノロジーズ テックリード。Microsoft MVP for Data Platform (August 2020-) SQL ServerをメインにDBに関してつぶやきます。得意領域はチューニング/トラブルシューティング。SQL Server User Groupにて毎月登壇中。https://github.com/masaki-hirose
https://mobile.twitter.com/maaaa20201
zozotech
70億人のファッションを技術の力で変えていく
https://tech.zozo.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away