2009-07-07 65 views
0

使用t-sql,我如何才能找到所有SQL登录在SQL 2000和2005服务器上都有强密码?tsql-强密码

任何帮助,非常感谢。

问候 Manjot

+1

由于很好的原因,密码被哈希......这是其中之一。 – Eric 2009-07-08 05:16:33

回答

1

你不能!如果你能识别弱密码,那将是一个安全问题。您可能希望强制所有用户更改其密码并强制执行密码策略。

的饼干:

// pseudocode: 
foreach (var username in 
    exec(@"SELECT username FROM hypothetical.fn_get_users_with_weak_passwords()")) 
    PerformDictionaryAttack(username); 

不太好......不是吗?

+0

我有系统管理员权限。 而出于审计目的,我需要找到一个登录名是否有弱密码。 是否有任何审计? – Manjot 2009-07-08 00:11:51

+0

Manjot:没有。无论你是否是系统管理员都无所谓。管理员*可以更改密码*,但他们无法看到当前的密码。 – 2009-07-08 00:13:59

1

我无法想象如果审计人员知道他/她的东西会要求您检查数据库中的密码强度,如上所述,无论您的权利如何,您都无法在Db服务器上查询密码是。他们更有可能问你你的密码和密码强度。

登录应绑定到一个域帐户,并且域控制器应该有一个配置文件,强制强密码,至少在Windows世界。

对于非用户,即网络应用程序,报告等,应该在应用程序的域级别创建功能帐户,或者更好的是为使用数据库的组创建功能帐户。

出于审计目的,这基本上是我们如何做到的,从管理角度来看,让Windows域控制器完成他们的工作并处理登录事务更容易。

0

是的,这是可能的,种类。

SQL 2005可以链接到组策略密码策略。这意味着您可以让SQL登录密码具有与您的NT登录相同的长度,到期时间等。当然,如果你没有政策,为什么他们关心SQL登录?

对于这两个版本,您可以使用NGS Squirrel蛮力强制密码散列。如果你快速破解密码(每周?每月?),那么它们不够好。

如果您想要一个纯粹的T-SQL解决方案,您可以使用pwdencrypt函数和一个循环遍历所有排列来模拟Squirrel。

否则:否。您只能通过破解密码来检查密码...

碰巧,我们全部使用域服务/系统帐户:我们根本没有SQL登录。