要维护 QueryGrid 中使用的 Teradata 连接器的安全性,请执行以下操作。
- 为创建和管理外部服务器的用户设置适当的权限。
- 为授权对象(如果使用)设置适当的权限。
授权对象存储远程服务器的本地用户和密码的映射。
- 设置对 Teradata 用户所需的数据库和表具有适当访问权限的外部服务器对象。
- 为 Teradata 用户设置对外部服务器对象的适当权限。
管理员权限
CREATE SERVER 和 DROP SERVER 是对象级权限,限制谁可以对 Teradata 发起程序连接器使用 CREATE FOREIGN SERVER 和 DROP FOREIGN SERVER SQL 语句。
- CREATE SERVER 只能授予整个 TD_SERVER_DB 数据库。
- DROP SERVER 可授予 TD_SERVER_DB 数据库或单独的外部服务器对象。
- 如果授予 TD_SERVER_DB 数据库 ALL 权限,则其中已包含 CREATE SERVER 和 DROP SERVER 权限。
除了 CREATE SERVER 和 DROP SERVER 权限,管理员需要对导入和导出表运算符或包含表运算符的 TD_SYSFNLIB 数据库具有 EXECUTE FUNCTION 和 SELECT 权限,以便创建、删除和修改外部服务器对象。
外部服务器对象的创建者隐式地获得以下对象权限:
- 包含 WITH GRANT OPTION 的 SHOW 权限
- 包含 WITH GRANT OPTION 的 DROP SERVER 权限
- 包含 WITH GRANT OPTION 的 SELECT 权限
- 如果外部服务器对象能够导出数据(即,CREATE FOREIGN SERVER 语句包括 DO EXPORT WITH 子句),则创建者将自动获得包含 WITH GRANT OPTION 的 INSERT 权限
需要 CREATE AUTHORIZATION 和 DROP AUTHORIZATION 权限才能处理外部服务器对象引用的授权对象。授权对象创建者将自动获得 DROP AUTHORIZATION 权限。
外部服务器对象的用户权限
必须向使用 Teradata 发起程序连接器查询远程数据库的用户授予外部服务器对象的 SELECT、INSERT 和 SHOW 权限。
授予针对外部服务器对象的 ALL 权限将隐式地授予其他权限,具体取决于外部服务器的性质:
- 如果外部服务器对象可以从远程数据库导入数据(即,CREATE FOREIGN SERVER 语句包括 DO IMPORT WITH 子句),则授予针对外部服务器的 ALL 权限将隐式地包括 SELECT、SHOW 和 DROP 权限。
- 如果外部服务器对象可以将数据导出到远程数据库(即,CREATE FOREIGN SERVER 语句包括 DO EXPORT WITH 子句),则授予针对外部服务器的 ALL 权限将隐式地包括 INSERT、SHOW 和 DROP 权限。