sp_adduser (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本)

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

重要

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

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

語法

  
sp_adduser [ @loginame = ] 'login'   
    [ , [ @name_in_db = ] 'user' ]   
    [ , [ @grpname = ] 'role' ]   

引數

[ @loginame = ] 'login'這是 SQL Server 登入或 Windows 登入的名稱。 loginsysname,沒有預設值。 入必須是現有的 SQL Server 登入或 Windows 登入。

[ @name_in_db = ] 'user' 這是新資料庫使用者的名稱。 使用者sysname,預設值是 Null。 如果未指定 user ,新資料庫使用者的名稱就會預設為 入名稱。 指定 使用者 可讓新使用者在資料庫中提供與伺服器層級登入名稱不同的名稱。

[ @grpname = ] 'role' 這是新使用者成為其中成員的資料庫角色。 rolesysname,預設值是 Null。 角色 在目前的資料庫中必須是有效的資料庫角色。

傳回碼值

0 (成功) 或 1 (失敗)

備註

sp_adduser 也會建立一個具有使用者名稱的架構。

在加入使用者之後,請使用 GRANT、DENY 和 REVOKE 陳述式來定義控制該使用者執行之活動的權限。

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

使用 sp_helprole 來顯示有效角色名稱的清單。 當您指定角色時,使用者會自動取得為該角色定義的權限。 如果未指定角色,則使用者會取得授與給預設 public 角色的許可權。 若要將使用者新增至角色,必須提供 使用者名稱 的值。 (使用者 名稱 可以與 login_id 相同。 )

使用者 來賓 已經存在於每個資料庫中。 如果之前已停用,新增使用者 來賓 將會啟用此使用者。 預設會在新的資料庫中停用使用者 來賓

sp_adduser 無法在使用者自訂交易內執行。

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

GRANT CONNECT TO guest;  
GO  

權限

需要資料庫的擁有權。

範例

A. 加入資料庫使用者

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

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

B. 以相同的登入識別碼,加入資料庫使用者

下列範例會針對 SQL Server 登入 Arvind,將使用者 Arvind 加入目前資料庫中。 此使用者屬於預設 public 角色。

EXEC sp_adduser 'Arvind';  

C. 以不同於伺服器層級登入的名稱,加入資料庫使用者

下列範例會將 SQL Server 登入 BjornR 加入具有使用者名稱 Bjorn 的目前資料庫中,並且將資料庫使用者 Bjorn 加入 Production 資料庫角色中。

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

另請參閱

安全性預存程序 (Transact-SQL)
sys.server_principals (Transact-SQL)
sp_addrole (Transact-SQL)
CREATE USER (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
sp_grantlogin (Transact-SQL)
系統預存程序 (Transact-SQL)