sp_addalias (Transact-SQL)
将登录映射到数据库中的用户。
重要提示: |
---|
sp_addalias 可与 SQL Server 的早期版本兼容。下一版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 作为使用别名的备用方法,SQL Server 2005 数据库引擎 提供了角色并可以向角色授予权限。有关详细信息,请参阅 CREATE USER (Transact-SQL) 和 CREATE ROLE (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 的权限在数据库中执行操作。
注意: |
---|
不能为 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)