SQL用户强制密码过期检查脚本

       在数据库系统维护中,为了提高数据库的安全性,以保证业务的可持续性,都会对数据库的用户帐号进行强制密码过期功能,要求用户定期对数据库帐号密码进行更改,从而保证数据库不会由于密码长时间未更改遭到黑客入侵。一般为了确保系统的安全性,都对系统进行了基线配置,在数据库方面也进行了基线配置。在数据库的日常巡检工作中,并不会直接对用户帐号密码过期期限进行检查,而是在用户进行报障时再进行处理。这种是一种很被动的方式。为了避免这种问题的发生,现需要在日常巡检中增加对数据库帐号授权过期进行检查,便编写了用于检查用户密码即将过期的SQL脚本。由于SQL Server 2000没有用户强制密码过期的功能,故以下SQL脚本不能应用于SQL Server 2000数据库。

脚本如下:

use master 
go 

--查询启用了强制密码过期的用户
select name,modify_date from sys.sql_logins where is_expiration_checked=1
 
--查询密码已经使用大于80天的帐号和修改日期
select name ,modify_date from sys.sql_logins where is_expiration_checked=1 and (select datediff (DAY,(select modify_date from sys.sql_logins where is_expiration_checked=1 ),(select GETDATE())))>80;

--查询密码已经修改的日期差
select datediff (DAY,(select modify_date from sys.sql_logins where is_expiration_checked=1),(select GETDATE()));

--查询数据库所有帐号信息
select * from sys.sql_logins;

       这样只需要登录到数据库执行脚本就可以对数据库帐号进行检查,当然还可以在此基础上进一步改进,将执行之后的结果,通过邮件的方式发送出来。此功能有待进一步优化。

Comments are closed.