sp_grantdbaccess (Transact-SQL)
将数据库用户添加到当前数据库。
重要提示 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 CREATE USER。 |
适用范围:SQL Server(SQL Server 2008 到当前版本)。 |
语法
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