sp_grantdbaccess (Transact-SQL)

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

重要说明重要提示

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

适用范围:SQL Server(SQL Server 2008 到当前版本)。

主题链接图标 Transact-SQL 语法约定

语法

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

参数

  • [ @loginame = ] **'**login '
    映射到新数据库用户的 Windows 组、Windows 登录名或 SQL Server 登录名的名称。 Windows 组和 Windows 登录名的名称必须按“Domain\login”的形式(例如,LONDON\Joeb)用 Windows 域名进行限定。 登录名不能已映射到数据库中的用户。 login 的数据类型为 sysname,无默认值。

  • [ @name_in_db=] 'name_in_db' [ OUTPUT]
    新数据库用户的名称。 name_in_db 是 OUTPUT 变量,其数据类型为 sysname,默认值为 NULL。 如果不指定,则使用 login。 如果指定为包含 NULL 值的 OUTPUT 变量,则 @name_in_db 将设置为 login。 name_in_db 不得已存在于当前数据库中。

返回代码值

0(成功)或 1(失败)

注释

sp_grantdbaccess 调用 CREATE USER,后者支持其他选项。 有关创建数据库用户的信息,请参阅 CREATE USER (Transact-SQL)。 若要从数据库删除数据库用户,请使用 DROP USER

不能在用户定义的事务中执行 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)