sp_addalias (Transact-SQL)

将登录映射到数据库中的用户。

ms184394.note(zh-cn,SQL.90).gif重要提示:
sp_addalias 可与 SQL Server 的早期版本兼容。下一版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 作为使用别名的备用方法,SQL Server 2005 数据库引擎 提供了角色并可以向角色授予权限。有关详细信息,请参阅 CREATE USER (Transact-SQL)CREATE ROLE (Transact-SQL)

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

语法

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

参数

  • [ @loginame = ] 'login'
    将为其分配别名的登录名称。login 的数据类型为 sysname,无默认值。login 必须为有效 SQL Server 登录或有权连接到 SQL Server 实例的 Microsoft Windows 用户。login 不能已经存在,也不能作为别名分配给数据库中的现有用户。
  • [ @name_in_db = ] 'alias_user'
    登录映射到的用户名。alias_user 的数据类型为 sysname,无默认值。alias_user 必须是登录在其中具有别名的数据库中的用户。映射到 Windows 用户时,请指定该用户在数据库中的标识名称。

返回代码值

0(成功)或 1(失败)

备注

登录可以映射到任何数据库的用户。只能在用户必须拥有别名的数据库中执行 sp_addalias。当用户通过使用 login 参数连接到 数据库引擎 实例时,用户可以凭借适用于 alias_user 的权限在数据库中执行操作。

ms184394.note(zh-cn,SQL.90).gif注意:
不能为 sa 登录创建别名。

登录可以在以下情况下访问数据库:

  • 在数据库中,登录拥有与之相关的用户帐户。
  • 在数据库中,登录拥有一个用户别名,该别名已被 sysadmin 固定服务器角色的数据库所有者或成员使用 sp_addalias 进行了添加。
  • guest 帐户已在数据库中启用。

不能从用户定义的事务中执行 sp_addalias 存储过程。

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

存储过程 说明

sp_helplogins

返回有效 login 值的列表。

sp_helpuser

返回使用了登录的数据库中有效 alias_user 值的列表。

sp_dropalias

删除一项别名映射。

权限

需要 db_owner 固定数据库角色的成员身份。

示例

以下示例显示如何将 SQL Server 登录 Victoria 映射到 AdventureWorks 数据库中的现有用户 (Albert)。

USE AdventureWorks;
EXEC sp_addalias 'Victoria', 'Albert' ;

请参阅

参考

安全存储过程 (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE ROLE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_helplogins (Transact-SQL)
sp_helpuser (Transact-SQL)
系统存储过程 (Transact-SQL)
sp_grantdbaccess (Transact-SQL)

其他资源

db_owner

帮助和信息

获取 SQL Server 2005 帮助