sp_grantdbaccess (Transact-SQL)

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

重要说明重要提示

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

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

语法

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

参数

  • [ @loginame = ] **'**login '
    映射到新数据库用户的 Windows 组、Windows 登录名或 SQL Server 登录名的名称。Windows 组和 Windows 登录名的名称必须按“域\登录名”的形式(例如, 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