Sql-Server

在 SQL Server 中處理過期的 SQL 登錄密碼

  • February 23, 2016

*是否可以使用SQL Server 管理對象 (SMO)*程式更改密碼過期的登錄密碼?

在工作時間,我多次從生產伺服器收到此消息。我在 SQL Server 中擁有“sa”級權限。

截屏

工作環境

  1. 微軟 SQL Server 2012 速成版
  2. 視窗伺服器 2012 R2
  3. VMware, Inc. VMware 虛擬平台

您可以使用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 設置。

作為Julien 的回答的補充,您可以主動將 tsql 安排為每天提醒您的工作,尤其DaysUntilExpirationLOGINPROPERTY例如從您的數據庫伺服器獲取所有將在 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

引用自:https://dba.stackexchange.com/questions/130018