sp_adduser功能是向當前資料庫中添加新的用戶。適用於SQL Server 2008及以上, 後續的 Microsoft SQL Server版本將刪除該功能。
基本介紹
- 中文名:sp_adduser
- 功能:當前資料庫中添加新的用戶
- 適用於:SQLServer2008SQLServer2005
- 語法:[ , [ @grpname = ] 'role' ]
功能,參數,返回代碼值,注釋,許可權,示例,添加資料庫用戶,添加資料庫用戶(使用相同的登錄 ID),添加資料庫用戶,
功能
語法
sp_adduser [ @loginame = ] 'login'
[ , [ @name_in_db = ] 'user' ]
參數
[ @loginame = ] 'login'
SQL Server 登錄或 Windows 登錄的名稱。login 的數據類型為 sysname,無默認值。login 必須是現有的 SQL Server 登錄名或 Windows 登錄名。
[ @name_in_db = ] 'user'
新資料庫用戶的名稱。user 的數據類型為 sysname,默認值為 NULL。如果未指定 user,則新資料庫用戶的名稱默認為 login 名稱。指定 user 將為資料庫中新用戶賦予一個不同於伺服器級別登錄名的名稱。
[ @grpname = ] 'role'
返回代碼值
0(成功)或 1(失敗)
注釋
sp_adduser 還將創建一個具有該用戶名的架構。
在添加完用戶之後,可以使用 GRANT、DENY 和 REVOKE 等語句來定義控制用戶所執行的活動的許可權。
使用 sys.server_principals 可顯示有效登錄名的列表。
使用 sp_helprole 可顯示有效角色名的列表。當指定一個角色時,用戶會自動地獲得那些為該角色定義的許可權。如果未指定角色,則用戶獲得的許可權將是授予默認 public 角色的許可權。若要將用戶添加到角色,必須提供 user name 的值。((username 可與 login_id 相同。)
用戶 guest 已經存在於每個資料庫中。如果此前禁用了用戶,則添加用戶 guest 可啟用該用戶。默認情況下,會在新資料庫中禁用用戶 guest。
不能在用戶定義事務內執行 sp_adduser。
您不能添加 guest 用戶,因為 guest 用戶已經存在於每個資料庫內。若要啟用 guest 用戶,請按如下方式授予guest CONNECT 許可權:
GRANT CONNECT TO guest;
GO
許可權
要求具有資料庫的所有權。
示例
添加資料庫用戶
以下示例使用現有的 SQL Server 登錄名 Vidur,將資料庫用戶 Vidur 添加到當前資料庫中的現有 Recruiting 角色。
EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'