web-dev-qa-db-ja.com

SQL Serverで期限切れのSQLログインのパスワードを処理する

SQL Server管理オブジェクト(SMO)プログラミングを使用して、有効期限が切れたパスワードでログインのパスワードを変更することはできますか?

勤務時間中に何度も、このメッセージを運用サーバーから受け取りました。 SQL Serverで「sa」レベルの特権を持っています。

Screenshot

作業環境

  1. Microsoft SQL Server 2012 Express
  2. Windowsサーバー2012 R2
  3. VMware、Inc. VMware仮想プラットフォーム
4

Login.ChangePassword メソッドを使用できます。

public void ChangePassword(
    string newPassword,
    bool unlock,
    bool mustChange
)

T-SQLを使用してパスワードを変更することもできます。

USE [master]
GO
ALTER LOGIN [test] WITH PASSWORD=N'123456'
GO

パスワードの有効期間を設定できます:

  • 管理ツール/ローカルセキュリティポリシーを開きます(またはSECPOL.MSCを実行します)。
  • セキュリティの設定/アカウントポリシー/パスワードポリシーに移動します
  • パスワードの最大有効期間を更新

ADとGPOでも設定できます。

4

Julienの回答あなたはプロアクティブにすることができますを補完して、特に DaysUntilExpiration of LOGINPROPERTY 例2日で期限切れになるすべてのログインをデータベースサーバーから取得します。

SELECT name as LoginName,
create_date as LoginCreateDate,
modify_date as LoginModifiedDate,
is_policy_checked ,
is_expiration_checked ,
-- returns the number of days until the password expires.
LOGINPROPERTY(name, 'DaysUntilExpiration') DaysUntilExpiration,
LOGINPROPERTY(name, 'PasswordLastSetTime') PasswordLastSetTime,
LOGINPROPERTY(name, 'IsExpired') IsExpired,
LOGINPROPERTY(name, 'IsMustChange') IsMustChange
From sys.sql_logins
--- optional filter 
-- where LOGINPROPERTY(name, 'DaysUntilExpiration') >= 2
6
Kin Shah