使用 ALTER TRUSTED CONTEXT 语句修改上下文受信任的对象的当前选项和属性(包括 ENABLED 或 DISABLED 方式)。
此语句是 SQL 语言 ANSI/ISO 标准的扩展。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
address | 客户机与数据库服务器之间的通信地址 | 对于此可信上下文对象的客户端通信地址必须唯一。有关其它的 address 限制,请参阅下文中的 ADDRESS 属性 | 用引号括起的字符串 |
context | 可信上下文对象的名称 | 必须存在于数据库服务器实例的可信上下文中且不能以字符 SYS 开头 | 标识符 |
role | 现有的用户定义或内置角色 | 在数据库中必须存在,且在可信上下文对象的属性中必须唯一 | 所有者名称 |
user | 用户的授权标识符 | 必须是有效的授权标识符。不能超过 32 字节。不能是发出此语句的用户的授权 ID 。 REPLACE USE FOR 子句不能指定该用户多次。 | 所有者名称 |
如果新的 address 值是安全域的名称,则该名称被域名服务器(决定产生的地址为 IPv4 或 IPv6 地址)转换为 IP 地址。当域名转换为 IP 地址时,该转换的结果可能是一个或多个 IP 地址。在这种情况下,如果从连接源发起的 IP 地址与域名转换的 IP 地址匹配,则数据库服务器解释传入的连接请求作为作为符合可信上下文对象的 ADDRESS 属性。
ALTER ATTRIBUTES 子句将指定的属性的现有值替换为新的值。如果属性不是当前可选上下文对象的一部分,则返回一个错误。未指定的属性仍保留先前的值。
可信上下文对象指定的 ADDRESS 值可通过 ALTER ATTRIBUTES 子句和 DROP ATTRIBUTES 子句删除。 ADDRESS 属性可被指定多次,但是每个 address 值在属性组中必须唯一。
ADD ATTRIBUTES 子句为该定义的可信上下文对象指定一个或多个可信属性列表。
DROP ATTRIBUTES 子句指定从可信上下文对象的定义中删除一个或多个属性。如果该属性不是当前可信上下文对象定义的一部分,则返回错误。
如果您现有的应用程序使用 ALTER TRUSTED CONTEXT 语句,且在 ATTRIBUTES 子句中包含 ENCRYPTION 或 WITH ENCRYPTION 选项,则数据库服务器不会发出 SQL 错误。然而,除此之外,对于 WITH ENCRYPTION 'NONE' 和 ENCRYPTION 'NONE' 关键字选项,ALTER TRUSTED CONTEXT 语句的加密选项在 GBase 8s 数据库服务器中不支持。
ALTER 子句的 DEFAULT ROLE role 选项标识在现有数据库服务器中已经存在的角色。该角色可以被不具有定义为可信上下文对象定义的一部分的用户指定的角色的用户使用。
NO DEFAULT ROLE 关键字指定可信上下文对象没有缺省角色。
如果此可信上下文的可信连接是活动的,则 DEFAULT ROLE 属性的变更在下一个请求新连接时或下一个更换用户请求时生效。
ENABLE 属性指示可信上下文对象处于启用状态。
DISABLE 属性指示可信上下文对象处于禁用状态,且对于新建立的可信连接禁用。
您不能使用 SET Database Object Mode 语句更改可信上下文的 ENABLE 或 DISABLE 属性。
ADD USE FOR 子句指定其它可建立基于此可信上下文对象的可信连接的用户。 PUBLIC 属性指示基于此可信上下文对象的可信连接可被任何用户使用。
PUBLIC 属性必须不能被指定为可信上下文对象的属性,且在 ADD USE FOR 子句中只能指定一次 PUBLIC 。如果可信上下文对象的定义允许被 PUBLIC 存取且还可被一个或多个用户存取,则用户规范重写此 PUBLIC 规范。
REPLACE USE FOR 子句指定更改使用此可信上下文对象的指定用户或 PUBLIC 组。当您使用 REPLACE USE FOR 子句 PUBLIC 时,该可信上下文对象必须已经被定义为允许 PUBLIC 使用,且 PUBLIC 在 REPLACE USE FOR 子句中只能指定一次。
REPLACE USE FOR 可以指定不同的角色名称,它必须是数据库服务器定义的角色。如果缺省角色与当前的可信上下文相关联,则可为用户明确指定角色以代替缺省的角色。
REPLACE USE FOR 子句还能更改当前的要求授权的用户或 PUBLIC 组。
REPLACE USE FOR 和 ADD USE FOR 子句可以指定基于此可信上下文对象可信连接的授权要求。缺省的是WITHOUT AUTHENTICATION 。
WITH AUTHENTICATION 属性指定将当前基于此可信上下文对象的连接的用户变更为该用户需要授权。
WITHOUT AUTHENTICATION 属性指定更改当前用户不需要授权。
DROP USE FOR 子句指定不能再使用该可信上下文对象的用户。这些从可信上下文的定义中删除的用户是当前允许使用该可信上下文对象的用户。如果一个或多个,不是全部用户可从可信上下文定义中删除,则指定的用户被删除且返回警告。如果没有指定的用户可以从可信上下文的定义中删除,则返回错误。
如果您对 DROP USE FOR 子句使用 PUBLIC,它移除所有用户(除了 SYSTEM AUTHID 用户 ID 和其他标识符已经显式启用的用户)使用此可信上下文对象的能力。
ALTER TRUSTED CONTEXT appserver DISABLE;
ALTER TRUSTED CONTEXT securerole REPLACE USE FOR joe WITH AUTHENTICATION ADD USE FOR PUBLIC WITHOUT AUTHENTICATION;
ALTER TRUSTED CONTEXT securerole ALTER ATTRIBUTES (ADDRESS '9.12.155.200');