适用范围:SQL Server
将数据库用户添加到当前数据库。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 改用 CREATE USER。
语法
sys.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 是一个 OUTPUT 类型为 sysname 的参数。 如果未指定, 则使用@loginame 。 如果变量为OUTPUT值,NULL@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