时间:2020-05-24来源:电脑系统城作者:电脑系统城
SQL server数据库本身没有密码复杂度策略设置,它是使用Windows操作系统的校验函数来校验账户密码的,所以查看SQL server数据库密码复杂度需要结合操作系统本地安全策略的密码策略来看。
下面实验一下,实验环境是在Windows server 2008虚拟机上装了SQL server20008数据库。
一、设置SQL server的密码复杂度策略
首先禁用服务器密码策略
使用sa账户登录SQL server,打开安全性-登录名-右键-输入登录名test,选择SQL server身份验证,输入密码“123”(此时勾选了强制实时密码策略),点击确定
可以成功创建了test账户,并且设置了弱口令“123”,然后右键test账户看一下属性。
下图中显示test账户勾选了强制实施密码策略,密码位置:显示15个圈,是看不出弱口令的。
用弱口令登录test账户也是没有问题的
然后开启服务器密码策略,使用管理员sa新建一个弱口令账户
依然使用sa账户登录SQL server,打开安全性-登录名-右键-输入登录名test1,选择SQL server身份验证,输入密码“123”(此时勾选了强制实施密码策略),点击确定
此时数据库报错提示“密码有效性验证失败,该密码不够复杂,不符合Windows策略要求”,证明了开启服务器密码策略并勾选账户强制实施密码策略,是有效果的。
但我看了一下Windows操作系统的密码策略也是挺下饭-..-最少六个字符长!!
就是说即使开了密码策略,还可以将密码设置为Qwe!23的六位数
如果想要设置密码最小长度的话,在服务器密码策略上修改就可以了
最后试一下开启Windows操作系统密码策略,不勾选数据库账户的强制实施密码策略,看看能不能,设置弱口令
果然结果是可以的。
总结一下就是SQL server密码策略要同时满足开启Windows密码策略并且勾选SQL server账户的强制实施密码策略才算是符合,但即使这样的话一样可以设置6位长度的口令,所以还要设置服务器的密码最小长度值。
二、设置SQL server的账户锁定策略
SQL server的账户锁定策略原理也是一样的,都是参照Windows操作系统的校验函数来校验的,所以需要勾选账户的强制密码过期,并且开启操作系统的账户锁定策略。
然后我试了一下:
1、只勾选数据库强制密码过期,不设置操作系统密码锁定策略
测试同一个账户输错10次密码,再输入正确直接进入数据库,账户没有被锁定
2、勾选数据库强制密码过期,设置操作系统密码锁定策略
输错三次密码,再输入正确密码,无法进入数据库,账户被锁定
3、取消数据库强制密码过期,设置操作系统密码锁定策略
此时使用同一个账户输错10次密码,再输入正确可以直接进入数据库,账户没有被锁定
总结:勾选数据库强制密码过期,设置操作系统密码锁定策略
2023-10-27
windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败解决办法2023-10-27
SQL Server截取字符串函数操作常见方法2023-10-27
浅谈SELECT *会导致查询效率低的原因收缩数据文件通过将数据页从文件末尾移动到更靠近文件开头的未占用的空间来恢复空间,在文件末尾创建足够的空间后,可取消对文件末尾的数据页的分配并将它们返回给文件系统,本文给大家介绍SQL Server 数据库中的收缩数据...
2023-10-27