在Linux上,Server在哪里存储“Server密码策略”和SA用户的密码?我明白,“密码”不安全。
错误:无法设置系统管理员密码:密码验证失败。由于密码太短,因此密码不符合Server密码策略的要求。密码必须至少有8个字符。
然后,
错误:无法设置系统管理员密码:密码验证失败。密码不符合Server密码策略要求,因为它不够复杂。密码必须至少有8个字符长,并包含以下四组中的三个字符:大写字母、小写字母、基本10位数字和符号。
我猜这个策略实际上已经被编译进数据库了?密码会被存储在一个不知名的位置?
发布于 2017-12-12 09:10:57
sa用户是Server登录名,其密码被加密并存储在master数据库中的DMV sys.sql_logins (数据库管理视图)中。
参考资料:sys.sql
您可能会注意到,这些视图只能在以下分支中找到:
Server | Databases | master | Views | System Views | .... DMV引用了一些系统基表,这些表可以访问(但不应该访问):
参考资料:系统基表
您要查找的策略内置到Server的代码中,并为每个新帐户按默认设置。在创建Server登录时,可以决定关闭默认值:
若要执行复杂和强制的密码策略选项,请选择“强制密码策略”。有关更多信息,请参见密码策略。这是选择Server身份验证时的默认选项。
..。通过CHECK_POLICY=OFF。请参阅完整的语法:
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }
<option_list1> ::=
PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
[ , <option_list2> [ ,... ] ]
<option_list2> ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
| CREDENTIAL = credential_name
<sources> ::=
WINDOWS [ WITH <windows_options>[ ,... ] ]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language 参考资料:创建登录(Transact-SQL)
如果Server是Windows域的成员,则它将从检索密码策略。否则,默认设置为:
密码复杂性策略旨在通过增加可能的密码数量来阻止暴力攻击。在执行密码复杂性策略时,新密码必须符合以下准则:
参考资料:密码策略
https://dba.stackexchange.com/questions/192892
复制相似问题