sp_adduser (Transact-SQL)
適用於:SQL Server
將新的使用者新增至目前的資料庫。
重要
SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CREATE USER 。
語法
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
也會建立架構,這是用戶的名稱。
新增用戶之後,請使用 GRANT
、 DENY
和 REVOKE
語句來定義控制使用者所執行活動的許可權。
用來 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';