在开始之前,如果要对身份验证机制设置为“Trusted”的 Teradata 到 Teradata 连接器执行以下过程,请验证目标 Teradata 系统上是否存在代理用户。代理用户将用于目标系统上的身份验证。
在发起程序系统上完成以下步骤。这些步骤在初始部署后以及创建远程服务器或访问时适用,但在升级版本后不适用。 - 以管理员身份(例如 dbc)登录到发起 Teradata 系统。
- 为目标服务器创建授权对象:CREATE AUTHORIZATION td_server_db.target_server_auth AS DEFINER TRUSTED USER 'proxyuser' PASSWORD 'password';
An authorization object is created in the td_server_db database. Using the DEFINER clause makes the authorization available globally to all users.
- 将 td_server_db 数据库上的 CREATE SERVER 和 EXECUTE FUNCTION 权限授予管理员用户,例如:
GRANT CREATE SERVER ON td_server_db TO dbc;
GRANT EXECUTE FUNCTION ON TD_SYSFNLIB TO dbc;
- 创建外部服务器:
CREATE FOREIGN SERVER target_server_name EXTERNAL SECURITY DEFINER TRUSTED target_server_auth USING LINK('linkname') VERSION ('version') DO IMPORT WITH TD_SYSFNLIB.QGInitiatorImport, DO EXPORT WITH TD_SYSFNLIB.QGInitiatorExport;
例如,其中 sdll7100 是发起 Teradata 系统,sdll7151 是目标 Teradata 系统:
CREATE FOREIGN SERVER sdll7151_fs EXTERNAL SECURITY DEFINER TRUSTED target_server_auth USING LINK('sdll7100_sdll7151') VERSION('active') DO IMPORT WITH TD_SYSFNLIB.QGInitiatorImport, DO EXPORT WITH TD_SYSFNLIB.QGInitiatorExport;
- 从数据库 td_server_db 中,向发起最终用户授予目标服务器的 SELECT 和 INSERT 权限。
GRANT SELECT ON td_server_db.target_server_name to initiating_end_user; GRANT INSERT ON td_server_db.target_server_name to initiating_end_user;
例如:
GRANT SELECT ON td_server_db.sdll7151_fs to sdll7100_user2; GRANT INSERT ON td_server_db.sdll7151_fs to sdll7100_user2;