sql server 2005 T-SQL ALTER LOGIN (Transact-SQL)
2007-12-21 09:51
465 查看
更改 SQL Server 登录帐户的属性。
Transact-SQL 语法约定
语法
参数
login_name
指定正在更改的 SQL Server 登录的名称。
ENABLE | DISABLE
启用或禁用此登录。
PASSWORD = 'password'
仅适用于 SQL Server 登录帐户。指定正在更改的登录的密码。密码是区分大小写的。
HASHED
仅适用于 SQL Server 登录名。指定在 PASSWORD 参数后输入的密码已经过哈希运算。如果未选择此选项,则在将密码存储到数据库之前,对其进行哈希运算。
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 登录帐户。指定应解锁被锁定的登录。
备注
如果 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 语句将失败。
不能使用带 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。
更改登录名。
启用或禁用登录。
将登录映射到其他凭据。
主体可更改用于自身登录的密码、默认语言以及默认数据库。
示例
复制代码
复制代码
复制代码
复制代码
Transact-SQL 语法约定
语法
ALTER LOGIN login_name { <status_option> | WITH <set_option> [ ,... ] } <status_option> ::= ENABLE | DISABLE <set_option> ::= PASSWORD = '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
参数
login_name
指定正在更改的 SQL Server 登录的名称。
ENABLE | DISABLE
启用或禁用此登录。
PASSWORD = 'password'
仅适用于 SQL Server 登录帐户。指定正在更改的登录的密码。密码是区分大小写的。
HASHED
仅适用于 SQL Server 登录名。指定在 PASSWORD 参数后输入的密码已经过哈希运算。如果未选择此选项,则在将密码存储到数据库之前,对其进行哈希运算。
注意: |
---|
此参数只能用于 SQL Server 2000 或更高版本所生成的哈希。 |
仅适用于 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 登录帐户。指定应解锁被锁定的登录。
备注
如果 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:您的用户帐户可能被提前锁定。 |
“消息 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. 启用已禁用的登录
以下示例将启用 KittiLert 登录。复制代码
ALTER LOGIN KittiLert ENABLE;
B. 更改登录密码
以下示例将 KittiLert 登录密码更改为 3948wJ698FFF7。复制代码
ALTER LOGIN KittiLert WITH PASSWORD = '3948wJ698FFF7';
C. 更改登录名称
以下示例将 KittiLert 登录名称更改为 MacraeS。复制代码
ALTER LOGIN KittiLert WITH NAME = MacraeS;
D. 将登录名映射到凭据
以下示例将登录名 MacraeS 映射到凭据 Custodian04。复制代码
ALTER LOGIN MacraeS WITH CREDENTIAL = Custodian04;
相关文章推荐
- SQL Server 2005 Beta 2 Transact-SQL 增强功能 1(转)
- sql server 2005 T-SQL % (通配符 -- 需匹配的字符)(Transact-SQL)
- sql server 2005 T-SQL --(注释)(Transact-SQL)
- sql server 2005 T-SQL @@CURSOR_ROWS (Transact-SQL)
- sql server 2005 T-SQL @@LANGID (Transact-SQL)
- sql server 2005 T-SQL @@PACK_SENT (Transact-SQL)
- sql server 2005 T-SQL @@TEXTSIZE (Transact-SQL)
- sql server 2005 T-SQL ALTER MASTER KEY (Transact-SQL)
- sql server 2005 T-SQL ALTER SCHEMA (Transact-SQL)
- sql server 2005 T-SQL ALTER XML SCHEMA COLLECTION (Transact-SQL)
- sql server 2005 T-SQL CKUP MASTER KEY (Transact-SQL)
- sql server 2005 T-SQL binary 和 varbinary (Transact-SQL)
- sql server 2005 T-SQL @@DBTS (Transact-SQL)
- sql server 2005 T-SQL @@LOCK_TIMEOUT (Transact-SQL)
- sql server 2005 T-SQL @@PACK_RECEIVED (Transact-SQL)
- sql server 2005 T-SQL @@TOTAL_ERRORS (Transact-SQL)
- sql server 2005 T-SQL ALTER FULLTEXT CATALOG (Transact-SQL)
- sql server 2005 T-SQL BEGIN...END (Transact-SQL)
- sql server 2005 T-SQL BULK INSERT (Transact-SQL)
- sql server 2005 beta 2 transact-sql 增强功能