ALTER TRUSTED CONTEXT 语句
使用 ALTER TRUSTED CONTEXT 语句修改上下文受信任的对象的当前选项和属性(包括
ENABLED 或 DISABLED 方式)。
此语句是 SQL 语言 ANSI/ISO 标准的扩展。
语法
Authorized User 子句
用法
您必须持有数据库安全管理员(DBSECADM)角色才能运行此语句。如果该语句被嵌入一个应用程
序中,则权限是这些程序的所有者。如果此语句以可信上下文的角色运行,则该组权限是这些自由
访问特权的结合:
⚫
该角色持有的权限组与主身份验证 ID 相关联,
⚫
此语句引用的每个角色都持有该权限组。
当 ALTER TRUSTED CONTEXT 语句执行成功后,该可信上下文对象的任何更改(它的属性、它
的授权用户列表)会注册于 GBase 8s 数据库服务器实例的 sysuser 数据库的这些表中:
⚫
systrustedcontext
⚫
systcxattributes
⚫
systcxusers
ADDRESS 属性
在定义可信上下文对象时,ALTER ATTRIBUTES 、ADD ATTRIBUTES 和 DROP ATTRIBUTES 选
项可以指定一个或多个通信地址列表以连接数据库服务器,它们的状态可作为连接可信属性。下列
限制适用于 ALTER TRUSTED CONTEXT 或 CREATE TRUSTED CONTEXT 语句引用的通信地
址:
⚫
在该可信上下文对象的客户机通信地址中,每个地址必须唯一。
⚫
每个地址必须符合 TCP/IP 协议。
⚫
每个地址必须是 IPv4 地址、 IPv6 地址或安全域名称。
⚫
IPv4 地址或 IPv6 地址必须是真实的主机地址(不是本地主机),且不能包含空格键。
⚫
此外,IPv6 地址不能是 IPv4 映射的 IPv6 地址。
⚫
安全域额名称不能是动态主机配置协议(DHCP)地址。
如果新的 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 数据库服务器中不支持。
DEFAULT ROLE 属性
ALTER 子句的 DEFAULT ROLE role 选项标识在现有数据库服务器中已经存在的角色。该角色可
以被不具有定义为可信上下文对象定义的一部分的用户指定的角色的用户使用。
NO DEFAULT ROLE 关键字指定可信上下文对象没有缺省角色。
如果此可信上下文的可信连接是活动的,则 DEFAULT ROLE 属性的变更在下一个请求新连接时或
下一个更换用户请求时生效。
ALTER 子句的 ENABLE 和 DISABLE 选项
ENABLE 属性指示可信上下文对象处于启用状态。
DISABLE 属性指示可信上下文对象处于禁用状态,且对于新建立的可信连接禁用。
您不能使用 SET Database Object Mode 语句更改可信上下文的 ENABLE 或 DISABLE 属性。
ADD USE FOR 子句
ADD USE FOR 子句指定其它可建立基于此可信上下文对象的可信连接的用户。
PUBLIC 属性指示
基于此可信上下文对象的可信连接可被任何用户使用。
PUBLIC 属性必须不能被指定为可信上下文对象的属性,且在 ADD USE FOR 子句中只能指定一次
PUBLIC 。如果可信上下文对象的定义允许被 PUBLIC 存取且还可被一个或多个用户存取,则用户
规范重写此 PUBLIC 规范。
REPLACE USE FOR 子句 GBase 8s SQL 指南:语法
REPLACE USE FOR 子句指定更改使用此可信上下文对象的指定用户或 PUBLIC 组。当您使用
REPLACE USE FOR 子句 PUBLIC 时,该可信上下文对象必须已经被定义为允许 PUBLIC 使用,
且 PUBLIC 在 REPLACE USE FOR 子句中只能指定一次。
REPLACE USE FOR 可以指定不同的角色名称,它必须是数据库服务器定义的角色。如果缺省角色
与当前的可信上下文相关联,则可为用户明确指定角色以代替缺省的角色。
REPLACE USE FOR 子句还能更改当前的要求授权的用户或 PUBLIC 组。
AUTHENTICATION 属性
REPLACE USE FOR 和 ADD USE FOR 子句可以指定基于此可信上下文对象可信连接的授权要求。
缺省的是 WITHOUT AUTHENTICATION 。
WITH AUTHENTICATION 属性指定将当前基于此可信上下文对象的连接的用户变更为该用户需要
授权。
WITHOUT AUTHENTICATION 属性指定更改当前用户不需要授权。
DROP USE FOR 子句
DROP USE FOR 子句指定不能再使用该可信上下文对象的用户。这些从可信上下文的定义中删除的
用户是当前允许使用该可信上下文对象的用户。如果一个或多个,不是全部用户可从可信上下文定
义中删除,则指定的用户被删除且返回警告。如果没有指定的用户可以从可信上下文的定义中删除,
则返回错误。
如果您对 DROP USE FOR 子句使用 PUBLIC,它移除所有用户(除了 SYSTEM AUTHID 用户 ID
和其他标识符已经显式启用的用户)使用此可信上下文对象的能力。
修改可信上下文的示例
在以下示例中,假设该可信上下文对象 appserver 存在并启用。以下的 ALTER TRUSTED
CONTEXT 语句将 appserver 可信上下文对象的对象方式重置为 DISABLE。当其处于该方式时,
appserver 可信上下文仍然存在,但是它不能用于存取数据库服务器。
ALTER TRUSTED CONTEXT appserver
DISABLE;
下列示例中,假设该可信上下文对象 secure_role 存在。发出 ALTER TRUSTED CONTEXT 语句
更改现有用户 joe 需要授权才能使用此可信上下文对象并给其它用户添加不用授权即可适应此可信
上下文对象的权限。
ALTER TRUSTED CONTEXT securerole
REPLACE USE FOR joe WITH AUTHENTICATION
ADD USE FOR PUBLIC WITHOUT AUTHENTICATION;
以下示例修改了该可信上下文对象 securerole 使用 IPv4 地址,此地址与最初定义使用的地址不
同。
ALTER TRUSTED CONTEXT securerole
ALTER ATTRIBUTES (ADDRESS ‘9.12.155.200’);