0

確かに、誰かが以前にこの問題を抱えていたに違いありません。私は、監査が開発者にアプリケーションにパスワードポリシーを適用するように求めている組織で働いています。SQL ログインを作成し、パスワード ポリシーを適用しました。最近直面した問題は、パスワードの有効期限が切れたときで、SQL 管理者は各ログインのロックを手動で解除する必要がありました。
また、ユーザーは、パスワードを変更する必要があるというリマインダーをまったく受け取っていないと不満を漏らしています。
どうすればこの目標を達成できるでしょうか? 私たちが望むのは、パスワード ポリシー (パスワードの長さ、有効期限) を強制し、パスワードの有効期限が切れる少なくとも 15 日前にユーザーに通知できるようにすることです。

EDIT 1
私のアプリケーションはデスクトップベースであり、Webベースでもあります。デスクトップ ベースのアプリケーションは SQL ログインを使用して自身を検証しますが、asp.net イントラネット Web サイトは ASP.NET Web サイト管理ツールによって作成されたユーザーを使用します。

4

2 に答える 2

2

このスクリプトを使用して、SQLエージェントジョブまたはSSISパッケージの一部としてユーザーパスワードの有効期限が切れる時期を取得できます(より複雑な処理が必要な場合)。

USE [master]
GO
SELECT [name] AS [sa]
      ,LOGINPROPERTY([name], 'PasswordLastSetTime') AS [PasswordLastResetDT]
      ,DATEDIFF(DAY, CONVERT([datetime],LOGINPROPERTY([name],'PasswordLastSetTime')),GETDATE()) AS [DaysUntilExpiration]
      ,LOGINPROPERTY([name], 'BadPasswordCount') AS [BadPasswordCount]
      ,LOGINPROPERTY([name], 'BadPasswordTime') AS [BadPasswordDT]
      ,LOGINPROPERTY([name], 'HistoryLength') AS [HistoryLength]
      ,LOGINPROPERTY([name], 'IsExpired') AS [IsExpired]
      ,LOGINPROPERTY([name], 'IsLocked') AS [IsLocked]
      ,LOGINPROPERTY([name], 'IsMustChange') AS [IsMustChange]
      ,LOGINPROPERTY([name], 'LockoutTime') AS [LockoutTime]
FROM [sys].[sql_logins]
GROUP BY [name]

その後、どういうわけかユーザー名とそのパスワードを関連付け、パスワードの有効期限が切れる前に電子メールを送信する必要があります。

于 2012-11-13T07:43:40.530 に答える
0

わかりました、このクエリでログインを選択できます

select * from sys.sql_logins where is_expiration_checked=1

次に、 LOGINPROPERTYをチェックして を取得しますDaysUntilExpiration。パスワードを毎日チェックし、ユーザーにメールで通知するサービスを作成するだけです。

于 2012-11-13T07:37:02.627 に答える