為 Microsoft® SQL Server™ 登錄或 Microsoft Windows NT® 用戶或組在當前數據庫中添加一個安全帳戶,並使其能夠被授予在數據庫中執行活動的權限。
sp_grantdbAccess [@loginame =] ''login''
[,[@name_in_db =] ''name_in_db'' [OUTPUT]]
[@loginame =] ''login''
當前數據庫中新安全帳戶的登錄名稱。Windows NT 組和用戶必須用 Windows NT 域名限定,格式為"域\用戶",例如 LONDON\Joeb。登錄不能使用數據庫中已有的帳戶作為別名。login 的數據類型為 sysname,沒有默認值。
[@name_in_db =] ''name_in_db'' [OUTPUT]
數據庫中帳戶的名稱。name_in_db 是 sysname 類型的 OUTPUT 變量,默認值為 NULL。如果沒有指定,則使用 login。如果將其指定為 NULL 值的 OUTPUT 變量,則設置 @name_in_db 為 login。當前數據庫不必存在 name_in_db。
0(成功)或 1(失敗)
SQL Server 用戶名可以包含 1 到 128 個字符,包括字母、符號和數字。但是,用戶名不能:
在使用安全帳戶訪問數據庫之前,必須授予它對當前數據庫的訪問權。使用 sp_grantdbAccess 僅可以管理當前數據庫中的帳戶。若要從數據庫中刪除帳戶,請使用 sp_revokedbAccess。
如果當前數據庫中沒有 guest 安全帳戶,而且 login 為 guest,則可以添加 guest 的安全帳戶。
sa 登錄不能添加到數據庫中。
不能從用戶定義的事務中執行 sp_grantdbAccess。
只有 sysadmin 固定服務器角色、db_Accessadmin 和 db_owner 固定數據庫角色的成員才能執行 sp_grantdbAccess。
下面的示例在當前數據庫中為 Windows NT 用戶 Corporate\GeorgeW 添加帳戶,並取名為 GeorgIE。
EXEC sp_grantdbAccess ''Corporate\GeorgeW'', ''GeorgIE''
sp_revokedbAccess