sp_adduser (Transact-SQL)

適用於:SQL Server

將新的使用者新增至目前的資料庫。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CREATE USER

Transact-SQL 語法慣例

語法

sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

引數

[ @loginame = ] N'loginame'

SQL Server 登入或 Windows 帳戶的名稱。 @loginame為 sysname,沒有預設值。 @loginame必須是現有的 SQL Server 登入或 Windows 帳戶。

[ @name_in_db = ] N'name_in_db'

新資料庫用戶的名稱。 @name_in_db為 sysname 預設值為 NULL。 如果未 指定@name_in_db ,新資料庫用戶的名稱預設為 @loginame。 指定 @name_in_db 為新使用者提供與伺服器層級登入名稱不同的資料庫中的名稱。

[ @grpname = ] N'grpname'

新使用者成為成員的資料庫角色。 @grpname為 sysname 預設值為 NULL@grpname必須是目前資料庫中的有效資料庫角色。

傳回碼值

0 (成功) 或 1 (失敗)。

備註

sp_adduser 也會建立架構,這是用戶的名稱。

新增用戶之後,請使用 GRANTDENYREVOKE 語句來定義控制使用者所執行活動的許可權。

用來 sys.server_principals 顯示有效登入的清單。

使用 sp_helprole 來顯示有效角色名稱的清單。 當您指定角色時,用戶會自動取得為角色定義的許可權。 如果未指定角色,使用者就會取得授與預設 公用 角色的許可權。 若要將使用者新增至角色,必須提供@name_in_db的值。 (@name_in_db 可以和 @loginame相同。

用戶 來賓 已存在於每個資料庫中。 如果先前已停用,則新增用戶 來賓 會啟用此使用者。 根據預設,新資料庫中會停用用戶 來賓

sp_adduser 無法在使用者定義的交易內執行。

您無法新增 來賓 用戶,因為 來賓 使用者已存在於每個資料庫內。 若要啟用 來賓 使用者,請授與 guest CONNECT 許可權,如下所示:

GRANT CONNECT TO guest;
GO

權限

需要資料庫的擁有權。

範例

A. 新增資料庫使用者

下列範例會使用現有的 SQL Server 登入 Vidur,將資料庫使用者Vidur新增至目前資料庫中的現有Recruiting角色。

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';

B. 新增具有相同登入標識碼的資料庫使用者

下列範例會將使用者 Arvind 新增至 SQL Server 登入 Arvind的目前資料庫。 此使用者屬於預設 的公用 角色。

EXEC sp_adduser 'Arvind';

C. 新增名稱與其伺服器層級登入不同的資料庫使用者

下列範例會將 SQL Server 登入 BjornR 新增至目前資料庫,其使用者名稱 Bjorn為 ,並將資料庫使用者 Bjorn 新增至 Production 資料庫角色。

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';