CREATE LOGIN (Transact-SQL)
建立新的 SQL Server 登入。
語法
CREATE LOGIN loginName { 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
引數
loginName
指定建立的登入名稱。有四種類型的登入:SQL Server 登入、Windows 登入、憑證對應登入和非對稱金鑰對應登入。當您建立從 Windows 網域帳戶對應的登入時,對於 Windows 2000 之前版本的使用者登入名稱,您必須使用 [<domainName>\<loginName>] 格式。您無法使用 loginName@DomainName 格式的 UPN。請參閱本主題稍後的範例 D。PASSWORD ='password'
只適用於 SQL Server 登入。指定要建立的登入密碼。您應該使用增強式密碼。如需詳細資訊,請參閱<增強式密碼>。PASSWORD **=**hashed_password
僅適用於 HASHED 關鍵字。指定要建立之登入的密碼雜湊值。HASHED
只適用於 SQL Server 登入。指定在 PASSWORD 引數之後輸入的密碼已雜湊處理。如果未選取這個選項,則輸入的密碼字串在儲存至資料庫之前會先雜湊處理。只有要在兩部伺服器之間移轉資料庫時,才應使用這個選項。請勿使用 HASHED 選項來建立新登入。MUST_CHANGE
只適用於 SQL Server 登入。如果有包含這個選項,第一次使用新登入時,SQL Server 會提示使用者輸入新密碼。CREDENTIAL **=**credential_name
對應到新 SQL Server 登入的認證名稱。認證必須已存在於伺服器中。目前這個選項只會將認證連結到登入。此選項可能會在未來的 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。WINDOWS
指定登入對應到 Windows 登入。CERTIFICATE certname
指定與這項登入相關聯的憑證名稱。這個憑證必須已存在於 master 資料庫中。ASYMMETRIC KEY asym_key_name
指定與這項登入相關聯的非對稱金鑰名稱。這個金鑰必須已存在於 master 資料庫中。
備註
密碼會區分大小寫。
僅當您建立 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 只會在 Windows Server 2003 和更新的版本中強制執行。如需詳細資訊,請參閱<密碼原則>。 |
從憑證或非對稱金鑰建立的登入只能用於程式碼簽章。它們不能用來連接到 SQL Server。僅當憑證或非對稱金鑰已存在於 master 時,您才能從憑證或非對稱金鑰中建立登入。
權限
需要伺服器的 ALTER ANY LOGIN 或 ALTER LOGIN 權限。
如果使用 CREDENTIAL 選項,則也需要伺服器的 ALTER ANY CREDENTIAL 權限。
範例
A. 建立具有密碼的登入
下列範例會針對特定的使用者識別碼建立登入,並指派密碼。MUST_CHANGE 選項需要使用者在第一次連接到伺服器時變更這個密碼。
CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO
B. 建立對應到認證的登入
下列範例會針對使用此使用者識別碼的特定使用者建立登入。此登入會對應到認證。
CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>',
CREDENTIAL = <credentialName>;
GO
C. 從憑證建立登入
下列範例會從 master 的憑證建立特定使用者識別碼的登入。
USE MASTER;
CREATE CERTIFICATE <certificateName>
WITH SUBJECT = '<loginName> certificate in master database',
EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO
D. 從 Windows 網域帳戶中建立登入
下列範例會從 Windows 網域帳戶建立登入。
CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO