返回首页

gbase数据、南大通用产品文档:GBase8c数据库使用

更新日期:2024年09月11日

GBase 8c 数据库提供的gsql 工具,支持若干高级功能,以便用户更方便地使用数据库。
gsql 程序有一些不属于SQL 命令的内部命令,以反斜线(“\”)开头。

使用gsql 工具登录GBase 8c 数据库,语法格式如下:
gsql -d dbname -p port <-U user_name> <-h hostip>
其中参数说明:

-d 参数:
指定要连接到的数据库名称。
首次连接可以指定生成的默认数据库postgres。

-p 参数:指定通过节点哪个端口号连接。可查看安装使用的yml 文件。CN 节点默
认端口为5432。

-U 参数:指定以哪个数据库用户身份连接,权限可能不同。缺省默认为gbase。

-h 参数:指定数据库节点所在的服务器IP。缺省默认为当前服务器IP。

-r 参数:如指定此选项,用户可以使用↑↓方向按键查看历史命令;
具体操作命令为:
[gbase@gbase8c ~]$ gsql -d postgres -p 5432

GBase 8c V5 安装部署手册(分布式)
南大通用数据技术股份有限公司
36
返回正确信息(省略部分信息)

gsql ((multiple_nodes GBase8cV5 3.0.0…… )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=#
随后可以自由使用GBase 8c 数据库。

退出GBase 8c 数据库登录状态。直接输入\q 命令,即可退出数据库。
postgres=# \q

GBase 8c V5 安装部署手册(分布式)
南大通用数据技术股份有限公司
37
7
附录

语法
REGEXP_SUBSTR(source_char,pattern[,position[,occurrence[,match_
option[,subexpr]]])
功能
提取指定字符串的子串。
用途
找出源字符串中与pattern 指定的正则表达式相匹配的字符串。
参数
表5- 18 参数说明
参数
说明
source_char
源字符串。该参数支持的数据类型与GBase 8a MPP Cluster 的
replace 函数的str 参数一致。
pattern
正则表达式。仅支持字符串,每个正则表达式最多可包含512
个字节。
position
开始匹配的位置。默认值为1,即从source_char 的第一个字符

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
744
参数
说明
开始匹配。
occurrence
正则匹配的序数。是一个正整数,可以是列名,支持数据类型
为整型和能够转换成数字的字符串,转换规则与GBase 8a MPP
Cluster 的insert 函数的pos 参数转换规则一致。不支持小数,若
设定为小数,按四舍五入规则处理。默认值为1。

指定为1,则替换第一次匹配到的出现;

指定为整数n,则替换第n 次匹配到的出现。
match_parameter
可通过设置该参数改变默认的匹配功能行为。可以是列名,列
的内容不能超出该参数的值域范围。使用时该参数用单引号包
围,例如:’i’。默认和设置成null 情况下“.”不匹配换行符,源
字符串被看作一行。参数可选项如下:

i:大小写不敏感;

c:大小写敏感;

n:点号(.)匹配换行符号;

m:多行模式;

x:扩展模式,忽略正则表达式中的空白字符用户同时指
定多个互斥参数(i,c)可选项时,系统按照最后出现的
参数处理。
subexpr
对于含有子表达式的正则表达式,表示正则表达式中的第几个
子串是函数目标。subexpr 是正则表达式中圆括号里的字符串片
段,子表达式可嵌套。子表达式按照其左括号出现的顺序编号。
该参数值域范围是0~9,超过9,函数返回0。可以设置成能够
转换成数字的字符串,
转换规则与GBase 8a MPP Cluster 的insert
函数的pos 参数转换规则一致。不支持列名。不支持小数,若设
定为小数,按四舍五入规则处理。默认为0。

指定为0,
返回与正则表达式匹配的字符串的位置,
全匹
配上返回1,不匹配返回0;

指定为大于0,
返回指定的子串的位置。
该值大于子串个
数时,返回0;

指定为空,函数返回null;

源字符串中有括号时,按照正则支持的转义处理。
使用约束

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
745
REGEXP_SUBSTR 函数的position、occurrence、match_parameter、subexpr 参数
都能省略,若上述4 个参数中的任何一个省略,省略参数后的所有参数都不能设
置,若需要设置后续参数则必须给出所设置参数的上一个参数的值。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
746

使用 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;