Share via


CREATE USER (Transact-SQL)

將使用者加入目前資料庫中。

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

語法

CREATE USER user_name 
    [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]

引數

  • user_name
    指定在這個資料庫內用來識別使用者的名稱。user_namesysname。該名稱最多可達 128 個字元長。
  • LOGIN login_name
    指定建立資料庫使用者所用的 SQL Server 登入。login_name 在伺服器中必須是有效的登入。當這個 SQL Server 登入進入資料庫時,會取得目前建立之資料庫使用者的名稱和識別碼。
  • CERTIFICATE cert_name
    指定目前建立之資料庫使用者的憑證。
  • ASYMMETRIC KEY asym_key_name
    指定目前建立之資料庫使用者的非對稱金鑰。
  • WITH DEFAULT_SCHEMA **=**schema_name
    指定在解析這個資料庫使用者之物件名稱時,伺服器所搜尋到的第一個結構描述。
  • WITHOUT LOGIN
    指定使用者不對應到現有的登入。

備註

如果省略了 FOR LOGIN,新的資料庫使用者就會對應至同名的 SQL Server 登入。

如果沒有定義 DEFAULT_SCHEMA,資料庫使用者便會使用 dbo 作為其預設的結構描述。DEFAULT_SCHEMA 可設為目前不存在於資料庫中的結構描述。DEFAULT_SCHEMA 可以在它所指向的結構描述建立之前設定。當您建立對應到 Windows 群組、憑證或非對稱金鑰的使用者時,不能指定 DEFAULT_SCHEMA。

ms173463.note(zh-tw,SQL.90).gif重要事項:
如果使用者是 系統管理員 (sysadmin) 固定伺服器角色的成員,則會忽略 DEFAULT_SCHEMA 的值。系統管理員 (sysadmin) 固定伺服器角色的所有成員都有預設的 dbo 結構描述。

WITHOUT LOGIN 子句會建立沒有對應至 SQL Server 登入的使用者。這個使用者可以用 guest 的身分連接到其他資料庫。

對應到 SQL Server 登入、憑證或非對稱金鑰的使用者名稱,不能含有反斜線字元 (\)。

您不能以 CREATE USER 建立 guest 使用者,因為每一個資料庫已經有 guest 使用者了。您可以授與 guest 使用者 CONNECT 權限來啟用它,如下所示:

GRANT CONNECT TO guest;
GO

您可以在 sys.database_principals (Transact-SQL) 目錄檢視中,看到有關資料庫使用者的資訊。

ms173463.Caution(zh-tw,SQL.90).gif注意:
在 SQL Server 2005 中,結構描述的行為與舊版 SQL Server 的不同。假設結構描述相當於資料庫使用者的程式碼可能不會傳回正確的結果。曾經使用下列任何一個 DDL 陳述式的資料庫中不應該使用舊的目錄檢視 (包括 sysobjects):CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION。在曾經使用這些陳述式的任何一個資料庫中,您必須使用新的目錄檢視。新的目錄檢視會考量 SQL Server 2005 中所導入的主體和結構描述的分隔。如需有關目錄檢視的詳細資訊,請參閱<目錄檢視 (Transact-SQL)>。

權限

需要資料庫的 ALTER ANY USER 權限。

範例

A. 建立資料庫使用者

下列範例會先建立一個具有密碼且名叫 AbolrousHazem 的伺服器登入,然後在 AdventureWorks 建立一個對應的資料庫使用者 AbolrousHazem

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO 

B. 以預設的結構描述建立資料庫使用者

下列範例會先建立一個具有密碼且名叫 WanidaBenshoof 的伺服器登入,然後再以預設的結構描述 Marketing,建立對應的資料庫使用者 Wanida

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

C. 從憑證建立資料庫使用者

下列範例會從憑證 CarnationProduction50 建立一個資料庫使用者 JinghaoLiu

USE AdventureWorks;
CREATE CERTIFICATE CarnationProduction50
    WITH SUBJECT = 'Carnation Production Facility Supervisors',
    EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO 

請參閱

參考

sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)

其他資源

使用者結構描述分隔

說明及資訊

取得 SQL Server 2005 協助