使用 CREATE TRUSTED CONTEXT 语句定义新的可信上下文对象。该语句是 SQL 语言的 ANSI/ISO 标准的扩展。
您必须持有数据库安全管理员(DBSECADM)角色才能运行此语句。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
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 子句指定此 SQL 语句中创建的能建立上下文的系统授权 ID。此语句中的 USER 子句只对 GBase 8s 数据库服务器有效,USER 关键字等价于 BASED UPON CONNECTION USING SYSTEM AUTHID 关键字,在 DB2 的 CREATE TRUSTED CONTEXT 语句中是必需的。这六个关键字可指定 GBase 8s 和 DB2 数据库的系统授权 ID ,但是只有 GBase 8s 支持将 USER 关键字作为它们的同义词。
如果 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 子句指定该可信连接可以被指定的授权标识使用。同一 user 名称只能在此子句中出现一次,允许由指定用户的列表或 PUBLIC 访问。
例如,假设可信上下文对象被定义为允许由 PUBLIC WITH AUTHENTICATION 和 joe WITHOUT AUTHENTICATION 访问。如果通过 joe 使用可信上下文,则不需要授权。但是,如果由 george 使用此可信上下文对象,它只能作为 PUBLIC 的成员访问,则需要授权。
WITH AUTHENTICATION 属性指定将基于此可信上下文对象的可信连接上的当前用户切换到此用户需要授权。WITHOUT AUTHENTICATION 属性指定切换当前用户不需要授权。用户的规范会覆盖 PUBLIC 的规范。
这些属性还会影响 ODBC、JDBC 或 ESQL/C 连接的客户端会话期间是否需要认证,其中 SET SESSION AUTHORIZATION 语句在可信连接建立后尝试切换到其它用户 ID 。
ROLE 对象指定使用可信连接时用户的角色(和特权)。DEFAULT ROLE 标识存在于当前数据库中的角色,并且在当用户没有被定义为可信上下文对象定义的一部分的用户指定角色时使用。NO DEFAULT ROLE 属性将指定没有缺省角色的可信上下文对象。缺省为 NO DEFAULT ROLE。为用户显式指定的角色将覆盖与可信上下文对象相关联的任何缺省角色。
ENABLE 关键字指定创建的可信上下文对象处于启用状态。
DISABLE 关键字指定创建的新的可信上下文对象处于禁用状态,并且对于已建立的新的可信连接未启用。
您不能使用 SET Database Object Mode 语句更改可信上下文的 ENABLE 或 DISABLE 属性。如果您需要重置可信上下文的 ENABLED 或 DISABLED 模式,则必须使用 ALTER TRUSTED CONTEXT 语句。
CREATE TRUSTED CONTEXT appserver USER wrjaibi DEFAULT ROLE MANAGER ENABLE ATTRIBUTES (ADDRESS '9.26.113.204') WITH USE FOR joe WITHOUT AUTHENTICATION, bob WITH AUTHENTICATION;
CREATE TRUSTED CONTEXT securerole USER pbird ENABLE ATTRIBUTES (ADDRESS 'example.ibm.com') WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;