数据库管理——安全管理——识别SQLServer中空密码或者弱密码的登录名
来源:互联网 发布:python unittest框架 编辑:程序博客网 时间:2024/05/22 00:33
原文译自:
http://www.mssqltips.com/sqlservertip/2775/identify-blank-and-weak-passwords-for-sql-server-logins/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012925
微软一直建议使用复杂的强密码。弱密码或者空密码会导致安全漏洞。可以使用PWDCOMPARE安全性函数来找出这类型的登录名和使用复杂的强密码重置,以避免这方面的安全漏洞。
可以使用这个函数去查找空密码或者弱密码。通过传入两个参数“text_password”和password_hash来执行这个函数,如果 clear_text_password 的哈希与 password_hash 参数匹配,则返回 1;否则返回 0。当访问目录视图sys.sql_logins时把这个函数放到where子句中,可以检查是否有空密码或者弱密码。
步骤一:
先创建一些具有相同密码的登录名。这里创建两个登录名:mssqltips和mssqltips_1,并有相同的密码,并且都为空密码。然后为每个登录名创建一个对应的用户,并赋予对数据库的db_owner权限。
--Creating a Login which has same password as its login name. Then creating a user with same name
--and assigned it db_owner access.
CREATE LOGINmssqltipsWITH PASSWORD='mssqltips'
, CHECK_POLICY=OFF
go
use tempdb
go
CREATE USER mssqltips forloginmssqltips
go
sp_addrolemember'db_owner',mssqltips
go
--Creating a Login without password. Then creating a user with same name and assigned it db_owner access.
CREATE LOGINmssqltips_1WITH PASSWORD=''
, CHECK_POLICY=OFF
go
use tempdb
go
CREATE USER mssqltips_1 for login mssqltips_1
go
sp_addrolemember'db_owner',mssqltips_1
go
步骤二:
现在测试相同密码,创建另外一个登录名“mssqltips_2”,并和mssqltips有相同密码。
--Creating a Login with common password. Then creating a user with same name and assigned it
--db_owner access.
CREATE LOGINmssqltips_2WITH PASSWORD='mssqltips'
, CHECK_POLICY=OFF
go
use tempdb
go
CREATE USER mssqltips_2 for login mssqltips_2
go
sp_addrolemember'db_owner',mssqltips_2
go
步骤三:
查询在SQLServer实体中弱密码的登录:
查找相同密码:
下面查询是返回所有具有相同密码的登录名,如mssqltips,把这个密码传到PWDCOMPARE函数去获取所有符合条件的登录名:
SELECT name ,
type_desc ,
create_date ,
modify_date ,
password_hash
FROM sys.sql_logins
WHERE PWDCOMPARE('mssqltips',password_hash)= 1 ;
截图显式mssqltips和mssqltips_2具有相同密码:
查找空密码:
执行以下语句:
SELECT name ,
type_desc ,
create_date ,
modify_date ,
password_hash
FROM sys.sql_logins
WHERE PWDCOMPARE('',password_hash)= 1 ;
得到以下结果:
查找密码和登录名相同的登录名:
SELECT name ,
type_desc ,
create_date ,
modify_date ,
password_hash
FROM sys.sql_logins
WHERE PWDCOMPARE(name,password_hash)= 1 ;
得到以下结果:
步骤四:
当你找到上面那些有问题的登录是,要重置成强密码,以保证服务器环境更加安全。
备注:截图是原文图片,而脚本,是把数据库从原文数据库改成tempdb。
- 数据库管理——安全管理——识别SQLServer中空密码或者弱密码的登录名
- Tomcat管理设置登录名和密码
- SqlServer 2008如何修改默认的sa登录名的密码
- 数据库—重置root密码
- Linux——SSH免密码登录
- 登录界面—记住用户名和密码
- 登录界面记住密码的存储——SharedPreferrences
- Struts2——简单的账号密码登录实例
- SSH无密码登录——简洁明白的操作
- 微软SQLServer密码管理的危险判断
- 微软SQLServer密码管理的危险判断
- 微软SQLServer密码管理的危险判断
- 微软SQLServer密码管理的危险判断
- 微软SQLServer密码管理的危险判断
- 数据库安全管理——用户登录次数限制及锁定(这里指数据库用户)
- 关于密码的那些事儿—浅谈密码的设计与管理
- 修改mysql数据库的账号或者密码
- 如何重设Ubuntu的登录密码,或者登录密码忘记了如何登录
- gprof介绍
- poj 1163 动态规划
- PHP客户端的调用,却实现不了c#客户端
- NOLOGGING&&FORCE LOGGING
- 银行家算法详解
- 数据库管理——安全管理——识别SQLServer中空密码或者弱密码的登录名
- Android菜单(Menu) - 5
- DNS的报文格式
- 汇编标志位
- 进程的死锁及其预防,检查,恢复
- CMDB原型第二稿完成。
- 静下心来写算法(之双向链表)
- ubuntu上安装 ibus Google拼音输入法
- ThinkPHP开发基础知识 函数变量定义等