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

sp_addremotelogin

说明

通过将条目添加到 master.dbo.sysremotelogins 对新远程服务器用户进行授权。

语法


sp_addremotelogin <remoteserver>[,< loginame>[, <remotename>] ]	

参数

remoteserver

是对其应用远程登录名的远程服务器的名称。此服务器必须通过 master.dbo.sysservers 表中的条目为本地服务器所知,该条目是通过 sp_addserver 创建的。

注意

本手册页使用“本地服务器”一词是指执行在“远程服务器”中运行的远程过程的服务器。

loginame

是本地服务器上用户的登录名。<loginame> 必须已存在于 master.dbo.syslogins 表中。

remotename

是远程服务器在登录到本地服务器时所使用的名称。所有未与一个本地 <loginame> 显式匹配的 <remotenames> 将自动与一个本地名称匹配。在示例 1 中,本地名称是用于登录的远程名称。在示例 2 中,本地名称是“albert”。

示例

示例 1

在 sysremotelogins 表中为远程服务器 GATEWAY 创建一个条目以进行登录验证。当本地和远程服务器具有相同的用户时,这是一种将远程名称映射到本地名称的简便方法:




sp_addremotelogin GATEWAY

本示例将在 sysremotelogins 中创建一行,其中 suid 列值为 -1,remoteusername 值为 NULL。

示例 2

创建一个条目,该条目将远程服务器 GATEWAY 中的所有登录名映射到本地用户名“albert”。SAP ASE 服务器会将一行添加到 sysremotelogins 中,其 suid 列是 Albert 的服务器用户 ID,remoteusername 是空值:


sp_addremotelogin GATEWAY, albert

若要让这些登录名能够在本地服务器上运行 RPC,在登录到本地服务器时,它们必须为 RPC 连接指定一个口令,或者它们必须在本地服务器上是“trusted”。若要将这些登录名定义为“trusted”,请使用 sp_remotelogin。

示例 3

将远程服务器 GATEWAY 上远程用户“pogo”的远程登录名映射到本地用户“ralph”。SAP ASE 服务器会将一行添加到 sysremotelogins 中,其 suid 列是 Ralph 的服务器用户 ID,remoteusername 列是“pogo”:


sp_addremotelogin GATEWAY, ralph, pogo

用法

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

b. 当收到远程登录名时,本地服务器以三种不同的方式尝试将远程用户映射到本地用户:

  • 首先,本地服务器在 sysremotelogins 中查找与远程服务器名和远程用户名匹配的行。如果本地服务器找到匹配的行,则将使用该行的本地服务器用户 ID 登录远程用户。这适用于来自指定远程用户的映射。

  • 如果未找到匹配的行,则本地服务器将搜索具有空远程名称并且本地服务器用户 ID 不为 -1 的行。如果找到这样的行,则将远程用户映射到该行中的本地服务器用户 ID。这适用于远程服务器中任何远程用户到特定本地名称的映射。

  • 最后,如果前面的尝试都已失败,则本地服务器查看 sysremotelogins 表中是否存在具有空远程名称并且本地服务器用户 ID 为 -1 的条目。如果找到这样的行,则本地服务器使用远程服务器提供的远程名称在 syslogins 表中查找本地服务器用户 ID。这适用于远程服务器和本地服务器中的登录名相同的情况。

    c. 本地用户的名称在远程服务器上可能有所不同。

    d. 如果使用 sp_addremotelogin 将远程服务器的所有用户映射到相同的本地名称,则可以使用 sp_remotelogin 为这些用户指定“trusted”选项。例如,如果服务器 GOODSRV 中映射到“albert”的所有用户都将是“trusted”,则按如下方式使用 sp_remotelogin

    
    sp_remoteoption GOODSRV, albert, NULL, trusted, true
    

    未指定为“trusted”的登录名不能在本地服务器上执行 RPC,除非它们在登录远程服务器时指定本地服务器的口令。在 Open Client Client-Library 中,用户可以使用 ct_remote_pwd 例程为服务器到服务器的连接指定口令。isql 和 bcp 不允许用户为 RPC 连接指定口令。

    如果用户使用“统一登录”登录远程服务器,则这些登录名已通过安全性机制的验证。这些登录名在本地服务器上也必须是受信任的,否则用户在登录远程服务器时必须指定服务器的口令。

    e.每个远程登录名条目都具有一个状态。trusted 选项的缺省状态是 false(不受信任)。这意味着,当远程登录名使用该条目时,将对口令进行检查。如果您不想检查口令,请使用 sp_remotelogin 将 trusted 选项的状态更改为 true。