sp_grantdbaccess (Transact-SQL)

适用于:SQL Server

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

重要

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

Transact-SQL 语法约定

语法

sp_grantdbaccess [ @loginame = ] 'login'  
    [ , [ @name_in_db = ] 'name_in_db' [ OUTPUT ] ]  

参数

[ @loginame = ] 'login_ ' 要映射到新数据库用户的 Windows 组、Windows 登录名或 SQL Server 登录名的名称。 Windows 组和 Windows 登录名的名称必须使用域登录形式的\ Windows 域名进行限定;例如,LONDON\Joeb。 登录名不能已映射到数据库中的用户。 login 是一个 sysname,没有默认值。

[ @name_in_db = ] 'name_in_db' [ OUTPUT] 新数据库用户的名称。 name_in_db是一个 OUTPUT 变量,其数据类型为 sysname,默认值为 NULL。 如果未指定, 则使用登录 名。 如果指定为值为 NULL 的 OUTPUT 变量, 则@name_in_db 设置为 登录名。 当前数据库中不存在name_in_db

返回代码值

0(成功)或 1(失败)

注解

sp_grantdbaccess调用 CREATE U标准版R,它支持其他选项。 有关创建数据库用户的信息,请参阅 CREATE U标准版R (Transact-SQL)。 若要从数据库中删除数据库用户,请使用 DROP U标准版R

不能在用户定义的事务中执行sp_grantdbaccess

权限

要求db_owner固定数据库角色或db_accessadmin固定数据库角色的成员身份。

示例

以下示例用于 CREATE USER 将 Windows 登录 Edmonds\LolanSo 名的数据库用户添加到当前数据库。 新用户名为 Lolan。 这是创建数据库用户的首选方法。

CREATE USER Lolan FOR LOGIN [Edmonds\LolanSo];  
GO  

另请参阅

安全存储过程 (Transact-SQL)
CREATE USER (Transact-SQL)
DROP USER (Transact-SQL)
系统存储过程 (Transact-SQL)