首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server将SA密码和Server密码策略存储在何处?

Server将SA密码和Server密码策略存储在何处?
EN

Database Administration用户
提问于 2017-12-12 05:35:35
回答 1查看 7.4K关注 0票数 2

在Linux上,Server在哪里存储“Server密码策略”和SA用户的密码?我明白,“密码”不安全。

错误:无法设置系统管理员密码:密码验证失败。由于密码太短,因此密码不符合Server密码策略的要求。密码必须至少有8个字符。

然后,

错误:无法设置系统管理员密码:密码验证失败。密码不符合Server密码策略要求,因为它不够复杂。密码必须至少有8个字符长,并包含以下四组中的三个字符:大写字母、小写字母、基本10位数字和符号。

我猜这个策略实际上已经被编译进数据库了?密码会被存储在一个不知名的位置?

EN

回答 1

Database Administration用户

发布于 2017-12-12 09:10:57

sa用户是Server登录名,其密码被加密并存储在master数据库中的DMV sys.sql_logins (数据库管理视图)中。

参考资料:sys.sql

您可能会注意到,这些视图只能在以下分支中找到:

代码语言:javascript
复制
Server | Databases | master | Views | System Views | .... 

DMV引用了一些系统基表,这些表可以访问(但不应该访问):

参考资料:系统基表

您要查找的策略内置到Server的代码中,并为每个新帐户按默认设置。在创建Server登录时,可以决定关闭默认值

若要执行复杂和强制的密码策略选项,请选择“强制密码策略”。有关更多信息,请参见密码策略。这是选择Server身份验证时的默认选项。

..。通过CHECK_POLICY=OFF。请参阅完整的语法:

代码语言:javascript
复制
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域的成员,则它将从检索密码策略。否则,默认设置为:

密码复杂性策略旨在通过增加可能的密码数量来阻止暴力攻击。在执行密码复杂性策略时,新密码必须符合以下准则:

  • 密码不包含用户的帐户名称。
  • 密码至少有八个字符长。
  • 密码包含来自以下四类中三种的字符:-拉丁文大写字母(A到Z) -拉丁文小写字母(a到z) -基本10位数字(0到9) -非字母数字字符,例如:感叹号(!)、美元符号($)、数字符号(#)或百分比(%).密码可以高达128个字符长。您应该使用尽可能长和复杂的密码。

参考资料:密码策略

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/192892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档