SQL 2005 sa islock用户不能正常登录的现象
作者:Anna 来源:赛迪网 时间:2008-12-05 15:49:00
用系统\administrators可以登录,在安全性用户列表中,修改sa属性时系统提示: 属性IsLocked不可用于登录"[sa].该对像可能没有此属性,也可能是访问权限不足而无法检索.( Microsoft.SqlServer.Smo),但新建一个dba用户可以登陆,不过要去掉强制实施密码策略,强制密码过期选择才行. sa 也不能删除也不能修改属性. 感觉sa就被锁住了一样,查看了一下系统字典表syslogins也没有发现什么不同. 最后在SQL Server 2005 联机丛书查看帮助,有了一些启发.
在 Windows Server 2003 或更高版本环境下运行 SQL Server 2005 时,可以使用 Windows 密码策略机制。
SQL Server 2005 可以将 Windows Server 2003 中使用的复杂性策略和过期策略应用于 SQL Server 内部使用的密码。这项功能需要通过 NetValidatePasswordPolicy() API 实现,该 API 只在 Windows Server 2003 和更高版本中提供。
密码复杂性
密码复杂性策略通过增加可能密码的数量来阻止强力攻击。实施密码复杂性策略时,新密码必须符合以下原则。
密码不得包含全部或“部分”用户帐户名。部分帐户名是指三个或三个以上两端用“空白”(空格、制表符、回车符等)或任何以下字符分隔的连续字母数字字符: - _ #
密码长度至少为六个字符。
密码包含以下四类字符中的三类:
英文大写字母 (A - Z)
英文小写字母 (a - z)
十个基本数字 (0 - 9)
非字母数字(例如:!、$、# 或 %)
密码过期
密码过期策略用于管理密码的使用期限。如果选中了密码过期策略,则系统将提醒用户更改旧密码和帐户,并禁用过期的密码。
策略实施
密码策略是针对各个登录名实施的。使用 Alter LOGIN 可以配置策略应用程序。配置密码策略实施时,适用以下规则。
当 CHECK_POLICY 更改为 ON 时:
除非将 CHECK_EXPIRATION 显式设置为 OFF,否则也会将其设置为 ON。
密码历史使用当前的密码哈希值初始化。
当 CHECK_POLICY 更改为 OFF 时:
CHECK_EXPIRATION 也设置为 OFF。
清除密码历史。
lockout_time 的值被重置。
如果指定 MUST_CHANGE,则 CHECK_EXPIRATION 和 CHECK_POLICY 必须设置为 ON。否则,该语句将失败。
如果 CHECK_POLICY 设置为 OFF,则 CHECK_EXPIRATION 不能设置为 ON。包含此选项组合的 Alter LOGIN 语句将失败。
最后在查询分析器执行以下语句就可以了.
alter login sa with password = 'newpwd' unlock, check_policy = off, check_expiration = off