使用t- SQL,我如何才能确定SQL 2000和2005服务器上的所有SQL登录是否都具有强密码?
如果能帮上忙,非常感谢。
向Manjot致敬
发布于 2009-07-07 23:29:33
你不能!如果你能识别出弱密码,这将是一个安全问题。您可能希望强制所有用户更改其密码并强制实施密码策略。
爆米花:
// pseudocode:
foreach (var username in
exec(@"SELECT username FROM hypothetical.fn_get_users_with_weak_passwords()"))
PerformDictionaryAttack(username);不太好..。不是吗?
发布于 2009-07-08 01:00:58
我不能想象一个知道他/她的东西的审计员会要求你检查数据库中密码的强度,如上所述,无论你的权限是什么,你都不能在数据库服务器上查询密码。更有可能的是,他们会问你密码和密码强度的处理过程。
登录应该绑定到域帐户,并且域控制器应该具有强制强密码的配置文件,至少在windows环境中是这样。
对于非用户,即web应用程序、报告等,应该在应用程序的域级别创建一个功能帐户,或者更好的是,为使用数据库的组创建一个功能帐户。
为了审计的目的,这基本上就是我们如何做的,从管理员的角度来看,让windows域控制器做他们的事情并处理登录端的事情要容易得多。
发布于 2009-07-08 05:14:09
是的,有可能,某种程度上。
SQL 2005可以链接到组策略密码策略。这意味着您可以让SQL登录密码与NT登录密码具有相同的长度、过期时间等。当然,如果您在那里没有策略,为什么他们会关心SQL登录?
对于这两个版本,您都可以使用NGS Squirrel来暴力破解密码散列。如果你能快速破解密码(一天?星期?月?)那他们就不够好了。
如果您想要一个纯T-SQL解决方案,可以通过使用pwdencrypt函数和一个遍历所有排列的循环来模拟Squirrel。
否则:不。你只能通过破解密码来检查密码...
碰巧,我们到处都使用域服务/系统帐户:我们根本没有SQL登录。
https://stackoverflow.com/questions/1095349
复制相似问题