Transact-SQL 参考

sp_addalias

在数据库中,把登录映射到用户。为向后兼容性提供 sp_addalias。Microsoft® SQL Server™ 7.0 版提供角色,并提供向角色授予权限的能力,作为使用别名的另一种方法。

语法

sp_addalias [ @loginame = ] 'login'
    ,
[ @name_in_db = ] 'alias_user'

参数

[ @loginame = ] 'login'

准备化名的登录名。login 的数据类型为 sysname,没有默认设置。login 必须是有效的 SQL Server 登录名或是具有连接 SQL Server 权限的 Microsoft Windows NT® 用户。login不得已经存在,也不能化名为数据库中的已有用户。

[ @name_in_db = ] 'alias_user'

登录映射到的用户名称。alias_user 的数据类型为 sysname,没有默认设置。alias_user 必须是数据库中有效的 Windows NT 或 SQL Server 用户,在该数据库中登录使用别名。指定 Windows NT 用户时,请指定 Windows NT 用户在数据库中已知的名称(用 sp_grantdbaccess 添加)。

返回代码值

0(成功)或 1(失败)

注释

可以映射到任何数据库的用户的登录。只能在用户必须使用别名的数据库中执行 sp_addalias。当用户用 login 连接到 SQL Server 时,用户可以在适用于 alias_user 的权限下,在数据库中执行活动。

说明  sa 登录不能用别名。

在下列情况下,登录可以使用数据库:

不能在用户定义事务处理中执行 sp_addalias

以下显示几个与 sp_addalias 一同使用的系统存储过程。

存储过程 描述
sp_helplogins 返回有效 login 值的列表。
sp_helpuser 返回数据库中有效alias_user 值的列表,在该数据库中要使用登录。
sp_dropalias 删除一项别名映射。

权限

只有 sysadmin 固定服务器角色成员和 db_accessadmindb_owner 固定数据库角色成员才能执行 sp_addalias

示例

下面的示例允许 SQL Server 登录 Victoria(它不是当前数据库的一个用户)以便将当前数据库和别名 Victoria 用到一个当前数据库已经存在的用户 (Albert) 中。

EXEC sp_addalias 'Victoria', 'Albert'

请参见

sp_addlogin

sp_addrole

sp_adduser

sp_dropalias

sp_helplogins

sp_helpuser

系统存储过程