sp_adduser

sp_adduser功能是向當前資料庫中添加新的用戶。適用於SQL Server 2008及以上, 後續的 Microsoft SQL Server版本將刪除該功能。

功能

語法

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 '

新用戶成為其成員的資料庫角色。role 的數據類型為 sysname,默認值為 NULL。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'

添加資料庫用戶(使用相同的登錄 ID)

以下示例將用戶 Arvind 添加到 SQL Server 登錄名 Arvind 的當前資料庫。該用戶屬於默認的 public 角色。

EXEC sp_adduser 'Arvind'

添加資料庫用戶

(使用不同於其伺服器級別登錄的名稱)

以下示例將 SQL Server 登錄名 BjornR 添加到具有用戶名 Bjorn 的當前資料庫,並將資料庫用戶 Bjorn 添加到Production 資料庫角色。

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

相關詞條

熱門詞條

聯絡我們