CREATE LOGIN (Transact-SQL)

更新: 2006 年 7 月 17 日

建立新的 SQL Server 登入。

主題連結圖示Transact-SQL 語法慣例

語法

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 登入、憑證對應登入和非對稱金鑰對應登入。如果 login_name 是從 Windows 網域帳戶對應,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。

ms189751.note(zh-tw,SQL.90).gif重要事項:
CHECK_EXPIRATION 和 CHECK_POLICY 只會在 和更新的版本中強制執行。如需詳細資訊,請參閱<密碼原則>。

從憑證或非對稱金鑰建立的登入只能用於程式碼簽章。它們不能用來連接到 SQL Server。僅當憑證或非對稱金鑰已存在於 master 時,您才能從憑證或非對稱金鑰中建立登入。

權限

需要伺服器的 ALTER ANY LOGIN 權限。如果使用 CREDENTIAL 選項,則也需要伺服器的 ALTER ANY CREDENTIAL 權限。

範例

A. 建立具有密碼的登入

下列範例會建立特定使用者的登入,並指派密碼。The 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)

其他資源

主體
密碼原則

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

變更的內容:
  • 釐清從憑證或非對稱金鑰建立之登入的使用方式。