返回首页

gbase数据、南大通用产品文档:GBase8sCREATE TRUSTED CONTEXT 语句

更新日期:2024年09月11日

使用 CREATE TRUSTED CONTEXT 语句定义新的可信上下文对象。该语句是
SQL 语言的 ANSI/ISO 标准的扩展。
您必须持有数据库安全管理员(DBSECADM)角色才能运行此语句。
语法

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 492

Authorized User Clause


GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 493
元素
描述
限制
语法
address 客户端连接到
数据库服务器
的通信地址
在此互信上下文对象的客户端
的通信地址中必须是唯一的。
有关 address 其它的限制,请
参阅下面的 ADDRESS
attributes 。
引用字符串
context 此处为可信上
下文对象声明
的名称
在此数据库服务器示例的可信
上下文对象的名称中必须是唯
一的,并且不能以字符 SYS 开

标识符
role
现有的用户定
义的或内置的
角色
必须存在于当前数据库中,且
必须在此可信上下文对象的属
性中是唯一的
所有者名称
user
用户的授权标

必须是有效的身授权标识。不
能超过 32 字节。不能是发出
此语句的用户的授权 ID 。在
WITH USE FOR 子句中必须指定
多于一次。
所有者名称
用法
CREATE TRUSTED CONTEXT 语句用于创建可信上下文对象,它运行用户具有
可信连接。在 CREATE TRUSTED CONTEXT STATEMENT 中,每个
ATTRIBUTES 、DEFAULT ROLE 、ENABLE 和 WITH USE 子句可以指定多
次,每个属性名称和相应的值必须是唯一的。
USER 子句
USER 子句指定此 SQL 语句中创建的能建立上下文的系统授权 ID。此语句中的
USER 子句只对 GBase 8s 数据库服务器有效,USER 关键字等价于 BASED
UPON CONNECTION USING SYSTEM AUTHID 关键字,在 DB2 的 CREATE
TRUSTED CONTEXT 语句中是必需的。这六个关键字可指定 GBase 8s 和 DB2
数据库的系统授权 ID ,但是只有 GBase 8s 支持将 USER 关键字作为它们的同
义词。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 494
ADDRESS 属性
ATTRIBUTES 子句可以为定义可选上下文对象的数据库指定一个或多个通信地
址。以下限制应用于 ALTER TRUSTED CONTEXT 或 CREATE TRUSTED
CONTEXT 语句引用的通信地址:

每个地址必须在此可选上下文对象的通信地址中是唯一的。

每个地址都必须符合 TCP/IP 协议。

每个地址必须是 IPv4 地址、IPv6 地址或安全域名。

IPv4 地址或 IPv6 地址必须是真实的主机地址(不是本地主机),并且
不能包含空格。

此外,IPv6 地址不能是 IPv4 映射的 IPv6 地址。

安全域名不能是动态主机配置协议(DHCP)地址。
如果 address 值是安全域的名称,此名称通过域名服务器转换为 IP 地址,其中
确定产生 IPv4 或 IPv6 地址。当域名被转换为 IP 地址时,该转换的结果可能是
一个或多个 IP 地址集。在这种情况下,如果连接发起的 IP 地址与域名转换的
任何 IP 地址下匹配,则数据库服务器将传入连接请求解释为与可信上下文对象
的 ADDRESS 属性匹配。
此 ADDRESS 属性可以被多次指定,但是每对 address 对于属性集合必须是唯一
的。
注意:
如果您在 ATTRIBUTES 子句中具有包含 ENCRYPTION 或 WITH
ENCRYPTION 应用程序,则可以不管它们,而数据库服务器不会发出 SQL 错
误。但是,除了 WITH ENCRYPTION 'NONE' 和 ENCRYPTION 'NONE',
GBase 8s 数据库服务器不支持 CREATE TRUSTED CONTEXT 语句的这些加密
选项。
WITH USE FOR 子句
WITH USE FOR 子句指定该可信连接可以被指定的授权标识使用。同一 user 名
称只能在此子句中出现一次,允许由指定用户的列表或 PUBLIC 访问。
例如,假设可信上下文对象被定义为允许由 PUBLIC WITH AUTHENTICATION
和 joe WITHOUT AUTHENTICATION 访问。如果通过 joe 使用可信上下文,

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 495
则不需要授权。但是,如果由 george 使用此可信上下文对象,它只能作为
PUBLIC 的成员访问,则需要授权。
WITH AUTHENTICATION 属性指定将基于此可信上下文对象的可信连接上的当
前用户切换到此用户需要授权。WITHOUT AUTHENTICATION 属性指定切换当
前用户不需要授权。用户的规范会覆盖 PUBLIC 的规范。
这些属性还会影响 ODBC、JDBC 或 ESQL/C 连接的客户端会话期间是否需要认
证,其中 SET SESSION AUTHORIZATION 语句在可信连接建立后尝试切换到其
它用户 ID 。
DEFAULT ROLE 属性
ROLE 对象指定使用可信连接时用户的角色(和特权)。DEFAULT ROLE 标识
存在于当前数据库中的角色,并且在当用户没有被定义为可信上下文对象定义的
一部分的用户指定角色时使用。NO DEFAULT ROLE 属性将指定没有缺省角色的
可信上下文对象。缺省为 NO DEFAULT ROLE。为用户显式指定的角色将覆盖与
可信上下文对象相关联的任何缺省角色。
ENABLE 和 DISABLE 关键字
ENABLE 关键字指定创建的可信上下文对象处于启用状态。
DISABLE 关键字指定创建的新的可信上下文对象处于禁用状态,并且对于已建立
的新的可信连接未启用。
您不能使用 SET Database Object Mode 语句更改可信上下文的 ENABLE 或
DISABLE 属性。如果您需要重置可信上下文的 ENABLED 或 DISABLED 模
式,则必须使用 ALTER TRUSTED CONTEXT 语句。
可信上下文定义的示例
示例 1: 创建可信环境对象,以便基于此可信环境对象的可信连接上的当前用户
可以切换到两个不同的用户 ID。当此连接的当前用户切换为 joe 时,不需要授
权。但是,当连接的当前用户切换为 bob 时,需要授权。注意可信上下文对象具
有称为 MANAGER 的缺省角色。 这意味着在此可信上下文对象范围内工作的用户
将继承与 MANAGER 角色关联的自由访问权。
CREATE TRUSTED CONTEXT appserver
USER wrjaibi

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 496
DEFAULT ROLE MANAGER
ENABLE
ATTRIBUTES (ADDRESS '9.26.113.204')
WITH USE FOR joe WITHOUT AUTHENTICATION,
bob WITH AUTHENTICATION;
示例 2: 创建可信环境对象,以便基于此可信环境对象的可信连接的当前用户可
以切换到任何用户 ID ,而不进行认证。
CREATE TRUSTED CONTEXT securerole
USER pbird
ENABLE
ATTRIBUTES (ADDRESS 'example.ibm.com')
WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;

使用本功能您可以从“已注册的服务器”连接到“对象资源管理器”。
在“已注册的服务器”视图中,右键单击集群或者集群下的GCluster 节
点服务器,在右键菜单中指定“连接”,然后选择“对象管理器”菜单项将连
接到“对象资源管理器”视图。或者,双击集群或集群下的GCluster 节点服
务器,也可以连接到“对象资源管理器”视图。如下图所示:

GBase 8a MPP Cluster 管理工具手册

- 28 -

南大通用数据技术股份有限公司

图 6-14 连接到“对象资源管理器”
当通过集群连接到“对象资源管理器”时,管理工具会自动连接该集群中
的任一个GCluster 节点服务器,因此,当集群中没有GCluster 节点服务器
时,是不能连接到“对象资源管理器”的。如下图所示:

图 6-15 无节点服务器的集群无法连接到对象管理器
当连接到“对象资源管理器”后,界面焦点将转到“对象资源管理器”视
图。

创建db-link
语法格式
CREATE DATABASE LINK dblink_name connect to '' identified by '' using 'gc_link ';
说明

其中dblink_name 是自定义的db-link 的名字,后面的查询中,使用该名字进行db-link
查询。connect to ‘’ identified by ‘’是固定语法;

using 后面是数据源的名字。
例如数据源配置文件名为gc_link.properties,
则这里填using
‘gc_link’。
删除db-link
语法格式
DROP DATABASE LINK dblink_name;

GBase 8a MPP Cluster 产品手册
4 管理员指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
603
说明
当前不支持IF EXISTS 语法。
使用db-link
语法格式
SELECT * FROM 表名@ dblink_name