Sql-Server
在 SQL Server 中處理過期的 SQL 登錄密碼
*是否可以使用SQL Server 管理對象 (SMO)*程式更改密碼過期的登錄密碼?
在工作時間,我多次從生產伺服器收到此消息。我在 SQL Server 中擁有“sa”級權限。
工作環境
- 微軟 SQL Server 2012 速成版
- 視窗伺服器 2012 R2
- 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 安排為每天提醒您的工作,尤其
DaysUntilExpiration
是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