您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_addalias

语法


sp_addalias <loginame>, <name_in_db>

参数

loginame

是在当前数据库中需要替代标识的用户的 master.dbo.syslogins 名称。

name_in_db

是要作为 <loginame> 的别名的数据库用户名。该名称必须存在于 master.dbo.syslogins 和当前数据库的 sysusers 表中。

示例

示例 1

数据库的 sysusers 表中有一个名为“albert”的用户,而 master.dbo.syslogins 中有一个名为“victoria”的用户登录名。此命令允许“victoria”以“albert”的名义使用当前数据库:


sp_addalias victoria, albert

用法

使用 sp_addalias 时,还存在一些其它注意事项:

  • 执行 sp_addalias 可以将一个用户映射为当前数据库中的另一个用户。映射关系显示在 sysalternates 中,其中这两个用户的 suids(系统用户 ID)是相连的。

  • 一次只能将某用户的别名指向一个数据库用户。

  • 使用 sp_helpuser 并将指定用户名作为参数,即可为映射到指定用户的所有用户生成报告。

  • 在用户尝试使用数据库时,SAP ASE 服务器会检查 sysusers,确认该用户是否列在其中。如果用户未列在其中,SAP ASE 服务器则检查 sysalternates。如果用户的 suid 列在映射到某个数据库用户的 suid 的 sysalternates 中,SAP ASE 服务器在使用该数据库时会将第一个用户视为第二个用户。

    如果在 <loginame> 中指定的用户存在于数据库的 sysusers 表中,SAP ASE 服务器不会使用该用户的别名标识,因为它会先检查 sysusers 并查找 loginame,然后才检查列有别名的 sysalternates