CREATE LOGIN (Transact-SQL)
更新日期: 2006 年 7 月 17 日
创建新的 SQL Server 登录名。
语法
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }
<sources> ::=
WINDOWS [ WITH <windows_options> [ ,... ] ]
| CERTIFICATE certificateName
| ASYMMETRIC KEY asym_key_name
<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
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
参数
- login_name
指定创建的登录名。 有四种类型的登录名:SQL Server 登录名、Windows 登录名、证书映射登录名和非对称密钥映射登录名。 如果从 Windows 域帐户映射 login_name,则 login_name 必须用方括号 ([ ]) 括起来。 请参阅本主题稍后部分中的示例 D。
- WINDOWS
指定将登录名映射到 Windows 登录名。
- CERTIFICATE certificateName
指定将与此登录名关联的证书名称。 此证书必须已存在于 master 数据库中。
- ASYMMETRIC KEY asym_key_name
指定将与此登录名关联的非对称密钥的名称。 此密钥必须已存在于 master 数据库中。
- PASSWORD ='password'
仅适用于 SQL Server 登录名。 指定正在创建的登录名的密码。 此值可能已经过哈希运算。 应使用强密码。 有关详细信息,请参阅强密码。
- PASSWORD **=**hashed_password
仅适用于 HASHED 关键字。 指定要创建的登录名密码的哈希值。
- HASHED
仅适用于 SQL Server 登录名。 指定在 PASSWORD 参数后输入的密码已经过哈希运算。 HASHED 选项只能用于关闭了密码策略检查的登录名。 如果未选择此选项,则在将作为密码输入的字符串存储到数据库之前,对其进行哈希运算。
- MUST_CHANGE
仅适用于 SQL Server 登录名。 如果包括此选项,则 SQL Server 将在首次使用新登录名时提示用户输入新密码。
- CREDENTIAL **=**credential_name
将映射到新 SQL Server 登录名的凭据的名称。 该凭据必须已存在于服务器中。
- SID = sid
仅适用于 SQL Server 登录名。 指定新 SQL Server 登录名的 GUID。 如果未选择此选项,则 SQL Server 自动指派 GUID。
- DEFAULT_DATABASE **=**database
指定将指派给登录名的默认数据库。 如果未包括此选项,则默认数据库将设置为 master。
- DEFAULT_LANGUAGE **=**language
指定将指派给登录名的默认语言。 如果未包括此选项,则默认语言将设置为服务器的当前默认语言。 即使将来服务器的默认语言发生更改,登录名的默认语言也仍保持不变。
- CHECK_EXPIRATION = { ON | OFF }
仅适用于 SQL Server 登录名。 指定是否对此登录帐户强制实施密码过期策略。 默认值为 OFF。
- CHECK_POLICY = { ON | OFF }
仅适用于 SQL Server 登录名。 指定应对此登录名强制实施运行 SQL Server 的计算机的 Windows 密码策略。 默认值为 ON。
备注
密码是区分大小写的。
只有创建 SQL Server 登录名时,才支持对密码预先进行哈希运算。
如果指定 MUST_CHANGE,则 CHECK_EXPIRATION 和 CHECK_POLICY 必须设置为 ON。 否则,该语句将失败。
不支持 CHECK_POLICY = OFF 和 CHECK_EXPIRATION = ON 的组合。
如果 CHECK_POLICY 设置为 OFF,将对 lockout_time 进行重置,并将 CHECK_EXPIRATION 设置为 OFF。
重要提示: |
---|
只有在 及更高版本上才会强制执行 CHECK_EXPIRATION 和 CHECK_POLICY。 有关详细信息,请参阅密码策略。 |
从证书或非对称密钥创建的登录名仅用于代码签名。 不能用于连接到 SQL Server。 仅当 master 中已存在证书或非对称密钥时,才能从证书或非对称密钥创建登录名。
权限
需要对服务器具有 ALTER ANY LOGIN 权限。 如果使用 CREDENTIAL 选项,则还需要对此服务器的 ALTER ANY CREDENTIAL 权限。
示例
A. 创建带密码的登录名
以下示例为特定用户创建一个登录名并分配一个密码。 MUST_CHANGE
选项需要用户首次连接到服务器时更改此密码。
CREATE LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO
B. 创建映射到凭据的登录名
以下示例为特定用户创建一个登录名。 此登录名将映射到凭据。
CREATE LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credential_name>;
GO
C. 从证书创建登录名
以下示例将从 master 中的证书为特定用户创建一个登录名。
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<login_name> certificate in master database',
EXPIRY_DATE = '02/02/2009';
GO
CREATE LOGIN <login_name> FROM CERTIFICATE <certificateName>;
GO
D. 从 Windows 域帐户创建登录名
以下示例将从 Windows 域帐户创建 [Adventure-Works\Mary5]
登录名。
CREATE LOGIN [Adventure-Works\Mary5] FROM WINDOWS;
GO
请参阅
参考
ALTER LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
其他资源
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 7 月 17 日 |
|