在数据库中,把登录映射到用户。为向后兼容性提供 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_accessadmin 及 db_owner 固定数据库角色成员才能执行 sp_addalias。
下面的示例允许 SQL Server 登录 Victoria(它不是当前数据库的一个用户)以便将当前数据库和别名 Victoria 用到一个当前数据库已经存在的用户 (Albert) 中。
EXEC sp_addalias 'Victoria', 'Albert'