原文如下。
微软建议使用复杂的强密码。 弱密码或空密码会引起安全漏洞。 您可以使用PWDCOMPARE安全函数来识别此类型的登录名,并通过使用复杂而强大的密码重置来避免这些安全漏洞。
可以使用此函数找到空密码或弱密码。 该函数将传递并执行两个参数“text_password”和password_hash,如果clear_text_password的散列与password_hash参数匹配,则返回1 否则返回0。 可以在访问目录视图sys.sql_logins时将此函数放在where子句中,以检查是否存在空密码或弱密码。
步骤1 :
首先,创建几个具有相同密码的登录名。 在此创建两个登录名: mssqltips和mssqltips_1。 具有相同的密码,都是空密码。 然后,为每个登录名创建相应的用户,并授予数据库的db_owner权限。
- creatingaloginwhichhassamepasswordasitsloginname.thencreatingauserwithsamename
--and assigned it db_owner access。
创建日志in
msqltipswithpassword=' MSSQL tips '
,CHECK_POLICY=OFF
go
use tempdb
go
CREATE USER mssqltips for
login mssqltips
go
sp_addrolemember'db_owner ',mssqltips
go
- creatingaloginwithoutpassword.thencreatingauserwithsamenameandassigneditdb _ owner access。
创建日志in
mssqltips_1 WITH PASSWORD=' '
,CHECK_POLICY=OFF
go
use tempdb
go
create user MSSQL tips _1forloginmssqltips _ 1
go
sp_addrolemember'db_owner ',mssqltips_1
go
步骤2 :
现在,我们将测试相同的密码,创建另一个登录名“mssqltips_2”,并使用与mssqltips相同的密码。
- creatingaloginwithcommonpassword.thencreatingauserwithsamenameandassignedit
--db_owner access。
创建日志in
msql tips _2with password=' MSSQL tips '
,CHECK_POLICY=OFF
go
use tempdb
go
create user MSSQL tips _2forloginmssqltips _ 2
go
sp_addrolemember'db_owner ',mssqltips_2
go
第三步:
要查询SQLServer实体上的弱密码登录,请执行以下操作:
搜索相同的密码:
以下查询返回具有相同密码的所有登录名,例如mssqltips。 将此密码传递给PWDCOMPARE函数以获取所有符合条件的登录名。
选择名称,
type_desc,
create_date,
modify_date,
password_hash
FROM sys.sql_logins
wherepwdcompare(MSSQLtips )、
password_hash )=1;
截图mssqltips和mssqltips_2具有相同的密码。
查找空密码:
执行以下语句:
选择名称,
type_desc,
create_date,
modify_date,
password_hash
FROM sys.sql_logins
WHERE PWDCOMPARE ',
password_hash )=1;
获得以下结果:
查找密码和登录名相同的登录名:
选择名称,
type_desc,
create_date,
modify_date,
password_hash
FROM sys.sql_logins
wherepwdcompare(name,
password_hash )=1;
获得以下结果:
步骤4 :
nxddp找到上述问题登录是为了保护服务器环境的安全,需要重置为强密码。
备注:虽然截图是原文图像,但脚本是将数据库从原文数据库更改为tempdb。
共享至:
2012-10-05 00:03
看685
注释