sp_grantdbaccess (Transact-SQL)

适用范围:SQL Server

将数据库用户添加到当前数据库。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CREATE USER

Transact-SQL 语法约定

语法

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 。 如果指定为值为 NULLOUTPUT 变量, 则@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