SQL创建用户Login,指定SID(密码有效性验证失败。该密码太短)

来源:互联网 发布:游戏数据分析师是什么? 编辑:程序博客网 时间:2024/04/29 15:38

select * from sys.sql_logins---拷贝出password(哈希密码)
CREATE LOGIN test1
WITH PASSWORD = 0x0100DBF387CCF45DAE93115E80D18962C1DB0CC7DCB8A027F93F hashed,  ---可以与拷贝出来用户账户的密码一致
sid= 0xB08B6E953A82674F84EA34800A5E76D6,
CHECK_POLICY = OFF; -----不强制密码策略

----------------------------------------------------------------------------

可用于镜像用户不一致情况处理:删除镜像用户,创建新用户

ALTER LOGIN login_name     {     <status_option>     | WITH <set_option> [ ,... ]    | <cryptographic_credential_option>    } <status_option> ::=        ENABLE | DISABLE<set_option> ::=                PASSWORD = 'password' | hashed_password HASHED    [       OLD_PASSWORD = 'oldpassword'      | <password_option> [<password_option> ]     ]    | DEFAULT_DATABASE = database    | DEFAULT_LANGUAGE = language    | NAME = login_name    | CHECK_POLICY = { ON | OFF }    | CHECK_EXPIRATION = { ON | OFF }    | CREDENTIAL = credential_name    | NO CREDENTIAL  <password_option> ::=     MUST_CHANGE | UNLOCK<cryptographic_credentials_option> ::=          ADD CREDENTIAL credential_name          | DROP CREDENTIAL credential_name
参数

login_name

指定正在更改的 SQL Server 登录的名称。域登录名必须用方括号括起来,其格式为 [domain\user]。

ENABLE | DISABLE

启用或禁用此登录名。

PASSWORD ='password'

仅适用于 SQL Server 登录名。指定正在更改的登录的密码。密码是区分大小写的。

PASSWORD =hashed_password

仅适用于 HASHED 关键字。指定要创建的登录名的密码的哈希值。

HASHED

仅适用于 SQL Server 登录名。指定在 PASSWORD 参数后输入的密码已经过哈希运算。如果未选择此选项,则在将密码存储到数据库之前,对其进行哈希运算。此选项只能用于在两台服务器之间同步登录名。切勿使用 HASHED 选项定期更改密码。

注意注意

此参数只能用于 SQL Server 2000 或更高版本所生成的哈希。

OLD_PASSWORD ='oldpassword'

仅适用于 SQL Server 登录名。要指派新密码的登录的当前密码。密码是区分大小写的。

MUST_CHANGE

仅适用于 SQL Server 登录名。如果包括此选项,则 SQL Server 将在首次使用已更改的登录名时提示输入更新的密码。

DEFAULT_DATABASE =database

指定将指派给登录名的默认数据库。

DEFAULT_LANGUAGE =language

指定将指派给登录名的默认语言。

NAME = login_name

正在重命名的登录的新名称。如果是 Windows 登录,则与新名称对应的 Windows 主体的 SID 必须匹配与 SQL Server 中的登录相关联的 SID。SQL Server 登录的新名称不能包含反斜杠字符 (\)。

CHECK_EXPIRATION = { ON | OFF }

仅适用于 SQL Server 登录名。指定是否对此登录名强制实施密码过期策略。默认值为 OFF。

CHECK_POLICY = { ON | OFF }

仅适用于 SQL Server 登录名。指定应对此登录名强制实施运行 SQL Server 的计算机的 Windows 密码策略。默认值为 ON。

CREDENTIAL = credential_name

将映射到 SQL Server 登录的凭据的名称。该凭据必须已存在于服务器中。有关详细信息,请参阅 凭据(数据库引擎)

NO CREDENTIAL

删除登录到服务器凭据的当前所有映射。有关详细信息,请参阅凭据(数据库引擎)

UNLOCK

仅适用于 SQL Server 登录名。指定应解锁被锁定的登录名。

ADD CREDENTIAL

将可扩展的密钥管理 (EKM) 提供程序凭据添加到登录名。有关详细信息,请参阅了解可扩展的密钥管理 (EKM)

DROP CREDENTIAL

删除登录名的可扩展密钥管理 (EKM) 提供程序凭据。有关详细信息,请参阅了解可扩展的密钥管理 (EKM)

注释

如果 CHECK_POLICY 设置为 ON,则无法使用 HASHED 参数。

如果 CHECK_POLICY 更改为 ON,则将出现以下行为:

  • CHECK_EXPIRATION 也设置为 ON,除非它被显式设置为 OFF。

  • 密码历史记录使用当前的密码哈希值初始化。

如果 CHECK_POLICY 更改为 OFF,则将出现以下行为:

  • CHECK_EXPIRATION 也设置为 OFF。

  • 清除密码历史记录。

  • lockout_time 的值被重置。

如果指定 MUST_CHANGE,则 CHECK_EXPIRATION 和 CHECK_POLICY 必须设置为 ON。否则,该语句将失败。

如果 CHECK_POLICY 设置为 OFF,则 CHECK_EXPIRATION 不能设置为 ON。包含此选项组合的 ALTER LOGIN 语句将失败。

重要说明重要提示

只有在 Windows Server 2003 及更高版本上才会强制执行 CHECK_EXPIRATION 和 CHECK_POLICY。有关详细信息,请参阅密码策略

重要说明重要提示

Windows Server 2003 中的一个已知问题可能会阻止错误密码计数在达到帐户锁定阈值后重置。这可能会导致当后续登录尝试失败后立即锁定。可以通过暂时设置 CHECK_POLICY = OFF,然后设置 CHECK_POLICY = ON 来手动重置错误的密码计数。有关帐户锁定阈值的详细信息,请参阅 Microsoft 知识库文章 818078:Your User Account May Be Prematurely Locked Out(您的用户帐户可能被提前锁定)。

不能使用带 DISABLE 参数的 ALTER_LOGIN 来拒绝对 Windows 组的访问。例如,ALTER_LOGIN [domain\group] DISABLE 将返回以下错误消息:

“消息 15151,级别 16,状态 1,第 1 行”

“无法对登录名‘Domain\Group' 执行更改,因为它不存在,或者您没有所需的权限。”

这是默认设置。

权限

需要 ALTER ANY LOGIN 权限。

如果使用 CREDENTIAL 选项,则还需要 ALTER ANY CREDENTIAL 权限。

如果正在更改的登录名是 sysadmin 固定服务器角色的成员或 CONTROL SERVER 权限的被授权者,则进行以下更改时还需要 CONTROL SERVER 权限:

  • 在不提供旧密码的情况下重置密码。

  • 启用 MUST_CHANGE、CHECK_POLICY 或 CHECK_EXPIRATION。

  • 更改登录名。

  • 启用或禁用登录名。

  • 将登录名映射到其他凭据。

主体可更改用于自身登录的密码、默认语言以及默认数据库。

示例

A. 启用已禁用的登录名

以下示例将启用 Mary5 登录名。

ALTER LOGIN Mary5 ENABLE;

B. 更改登录密码

以下示例将登录名 Mary5 的密码更改为强密码。

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. 更改登录名称

以下示例将 Mary5 登录名称更改为 John2

ALTER LOGIN Mary5 WITH NAME = John2;

D. 将登录名映射到凭据

以下示例将登录名 John2 映射到凭据 Custodian04

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. 将登录名映射到可扩展密钥管理凭据

以下示例将登录名 Mary5 映射到 EKM 凭据 EKMProvider1

ALTER LOGIN Mary5ADD CREDENTIAL EKMProvider1;GO

F. 解除锁定登录名

若要解除锁定 SQL Server 登录名,请执行以下语句,并将 **** 替换为所需帐户密码。

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;GO

若要在不更改密码的情况下解除锁定登录名,请关闭检查策略,然后再打开此检查策略。

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;GO

G. 使用 HASHED 更改登录名的密码

以下示例将 TestUser 登录名的密码更改为已经过哈希运算的值。

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;GO


原创粉丝点击