sp_grantdbaccess (Transact-SQL)
适用范围:SQL Server
将数据库用户添加到当前数据库。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CREATE USER 。
语法
sp_grantdbaccess
[ @loginame = ] N'loginame'
[ , [ @name_in_db = ] N'name_in_db' OUTPUT ]
[ ; ]
参数
[ @loginame = ] N'loginame'
要映射到新数据库用户的 Windows 组、Windows 登录名或 SQL Server 登录名的名称。 @loginame为 sysname,无默认值。 Windows 组和 Windows 登录名的名称必须以 Windows 域名的形式<domain>\<login>
限定;例如。 LONDON\Joeb
该登录名无法映射到数据库中的用户。
[ @name_in_db = ] N'name_in_db' OUTPUT
新数据库用户的名称。 @name_in_db是 sysname 类型的 OUTPUT 参数。 如果未指定, 则使用@loginame 。 如果指定为值为 NULL
OUTPUT 变量, 则@name_in_db 设置为 @loginame。 当前数据库中不得已存在@name_in_db。
返回代码值
0
(成功)或 1
(失败)。
注解
sp_grantdbaccess
调用 CREATE USER
,支持其他选项。 有关创建数据库用户的信息,请参阅 CREATE USER。 若要从数据库中删除数据库用户,请使用 DROP USER。
sp_grantdbaccess
无法在用户定义的事务中执行。
权限
要求db_owner固定数据库角色或db_accessadmin固定数据库角色的成员身份。
示例
以下示例用于 CREATE USER
将 Windows 帐户 Edmonds\LolanSo
的数据库用户添加到当前数据库,这是创建数据库用户的首选方法。 新用户名为 Lolan
。
CREATE USER Lolan FOR LOGIN [Edmonds\LolanSo];
GO