sys.sp_grantdbaccess(Transact-SQL)

适用范围:SQL Server

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

重要

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

Transact-SQL 语法约定

语法

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