华为云用户手册

  • cidr和inet函数 函数abbrev,host,text主要是为了提供可选的显示格式。 abbrev(inet) 描述:缩写显示格式文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT abbrev(inet '10.1.0.0/16') AS RESULT; result ------------- 10.1.0.0/16 (1 row) abbrev(cidr) 描述:缩写显示格式文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT abbrev(cidr '10.1.0.0/16') AS RESULT; result --------- 10.1/16 (1 row) broadcast(inet) 描述:网络广播地址。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT broadcast('192.168.1.5/24') AS RESULT; result ------------------ 192.168.1.255/24 (1 row) family(inet) 描述:抽取地址族,4为IPv4,6为IPv6。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT family('127.0.0.1') AS RESULT; result -------- 4 (1 row) host(inet) 描述:将主机地址类型抽出为文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT host('192.168.1.5/24') AS RESULT; result ------------- 192.168.1.5 (1 row) hostmask(inet) 描述:为网络构造主机掩码。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT hostmask('192.168.23.20/30') AS RESULT; result --------- 0.0.0.3 (1 row) masklen(inet) 描述:抽取子网掩码长度。 返回类型:int 示例: 1 2 3 4 5 gaussdb=# SELECT masklen('192.168.1.5/24') AS RESULT; result -------- 24 (1 row) netmask(inet) 描述:为网络构造子网掩码。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT netmask('192.168.1.5/24') AS RESULT; result --------------- 255.255.255.0 (1 row) network(inet) 描述:抽取地址的网络部分。 返回类型:cidr 示例: 1 2 3 4 5 gaussdb=# SELECT network('192.168.1.5/24') AS RESULT; result ---------------- 192.168.1.0/24 (1 row) set_masklen(inet, int) 描述:为inet数值设置子网掩码长度。 返回类型:inet 示例: 1 2 3 4 5 gaussdb=# SELECT set_masklen('192.168.1.5/24', 16) AS RESULT; result ---------------- 192.168.1.5/16 (1 row) set_masklen(cidr, int) 描述:为cidr数值设置子网掩码长度。 返回类型:cidr 示例: 1 2 3 4 5 gaussdb=# SELECT set_masklen('192.168.1.0/24'::cidr, 16) AS RESULT; result ---------------- 192.168.0.0/16 (1 row) text(inet) 描述:把IP地址和掩码长度抽取为文本。 返回类型:text 示例: 1 2 3 4 5 gaussdb=# SELECT text(inet '192.168.1.5') AS RESULT; result ---------------- 192.168.1.5/32 (1 row)
  • 数据库级字符集和字符序 创建一个新的数据库时,可以指定数据库的字符集字符序,创建数据库操作请参见CREATE DATABASE。 CREATE DATABASE [IF NOT EXISTS] database_name [ ENCODING [=] encoding ] | [ LC_COLLATE [=] lc_collate ] | [ LC_CTYPE [=] lc_ctype ] |; 参数说明: database_name 数据库名称。 取值范围:字符串,要符合标识符的命名规范。 ENCODING [ = ] encoding 指定数据库使用的字符编码,可以是字符串(如'SQL_ASCII')、整数编号。 LC_COLLATE [ = ] lc_collate 指定新数据库使用的字符集。例如,通过lc_collate = 'zh_CN.gbk'设定该参数。 该参数的使用会影响到对字符串的排序(如使用ORDER BY执行,以及在文本列上使用索引的顺序)。默认是使用模板数据库的排序。 取值范围:操作系统支持的字符集。 LC_CTYPE [ = ] lc_ctype 指定新数据库使用的字符分类。例如,通过lc_ctype = 'zh_CN.gbk'设定该参数。该参数的使用会影响到字符的分类,如大写、小写和数字。默认是使用模板数据库的字符分类。 取值范围:操作系统支持的字符分类。 数据库级字符集、字符序语法所有模式均可使用,详细语法参考CREATE DATABASE 。 LC_COLLATE/LC_CTYPE语法不支持指定MYSQL模式特有的字符序,参数的取值范围取决于本地环境支持的字符集,可通过locale -a查看。 父主题: 字符集与字符序
  • GS_LABELS GS_LABELS视图显示所有已配置的资源标签信息。需要有系统管理员或安全策略管理员权限才可以访问此视图。 表1 GS_LABELS字段 名称 类型 描述 labelname name 资源标签的名称。 labeltype name 资源标签的类型。对应系统表GS_POLICY_LABEL中的labeltype字段。 fqdntype name 数据库资源的类型。如table、schema、index等。 schemaname name 数据库资源所属的schema名称。 fqdnname name 数据库资源名称。 columnname name 数据库资源列名称,若标记的数据库资源不为表的列则该项为空。 父主题: 用户和权限管理
  • 如何并行创建索引? 答:参考如下方法: --设置maintenance_work_mem参数根据实际情况调整该大小。 gaussdb=# SET maintenance_work_mem = '8GB'; --建表。 gaussdb=# CREATE TABLE table_name (col1 int, col2 int); --修改表创建索引的线程数量,需根据实际情况修改线程数。 gaussdb=# ALTER TABLE table_name SET (parallel_workers=4); --创建索引。 gaussdb=# CREATE INDEX index_name ON table_name(col1); --重置该表的parallel_workers参数。 gaussdb=# ALTER TABLE table_name RESET (parallel_workers); --删除索引。 DROP INDEX index_name; --删除表。 gaussdb=# DROP TABLE table_name; 父主题: FAQ
  • DB_SEQUEN CES DB_SEQUENCES视图显示当前用户能够访问的所有序列的信息。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 DB_SEQUENCES字段 名称 类型 描述 sequence_owner name 序列所有者。 sequence_name name 序列的名称。 min_value int16 序列最小值。 max_value int16 序列最大值。 increment_by int16 序列的增量。 cycle_flag character(1) 序列是否是循环序列。取值范围: Y:循环序列。 N:不是循环序列。 order_flag character varying(1) 标志序列是否按照请求顺序发生,暂不支持,值为NULL。 cache_size int16 序列磁盘缓存大小。 last_number int16 上一序列的值。 scale_flag character varying(1) 标志是否为可扩展序列,暂不支持,值为NULL。 extend_flag character varying(1) 标志可扩展序列生成的值是否超出序列最大值、最小值范围。暂不支持,值为NULL。 sharded_flag character varying(1) 标志是否是分片序列,暂不支持,值为NULL。 session_flag character varying(1) 标志序列是否是会话私有,暂不支持,值为NULL。 keep_value character varying(1) 标志在失败后的replay期间是否保留序列值,暂不支持,值为NULL。 父主题: 其他系统视图
  • GS_SESSION_STAT GS_SESSION_STAT视图以会话线程或AutoVacuum线程为单位,显示会话状态信息。 表1 GS_SESSION_STAT字段 名称 类型 描述 sessid text 线程标识+线程启动时间。 statid integer 统计会话编号。 statname text 统计会话名称。 statunit text 统计会话单位。 value bigint 统计会话值。 父主题: 其他系统视图
  • ADM_DATA_FILES ADM_DATA_FILES视图显示关于数据库文件的描述。默认只有系统管理员权限才可以访问,普通用户需要授权才可以访问。该视图同时存在于PG_CATALOG和SYS Schema下。 表1 ADM_DATA_FILES字段 名称 类型 描述 tablespace_name name 文件所属的表空间的名称。 bytes double precision 文件的字节长度。 父主题: 其他系统视图
  • GLOBAL_INSTANCE_TIME 提供数据库中所有正常节点下的各种时间消耗信息,如表1所示。 表1 GLOBAL_INSTANCE_TIME字段 名称 类型 描述 node_name name 节点名称。 stat_id integer 统计编号。 stat_name text 类型名称。见INSTANCE_TIME视图。 value bigint 时间值(单位:微秒)。 父主题: Instance
  • 参数 表1 SQLGetData参数 关键字 参数说明 StatementHandle 语句句柄,通过SQLAllocHandle获得。 Col_or_Param_Num 要返回数据的列号。结果集的列按增序从1开始编号。书签列的列号为0。 TargetType TargetValuePtr缓冲中的C数据类型的类型标识符。若TargetType为SQL_ARD_TYPE,驱动使用ARD中SQL_DESC_CONCISE_TYPE字段的类型标识符。若为SQL_C_DEFAULT,驱动根据源的SQL数据类型选择缺省的数据类型。 TargetValuePtr 输出参数:指向返回数据所在缓冲区的指针。 BufferLength TargetValuePtr所指向缓冲区的长度。 StrLen_or_IndPtr 输出参数:指向缓冲区的指针,在此缓冲区中返回长度或标识符的值。
  • 原型 1 2 3 4 5 6 SQLRETURN SQLGetData(SQLHSTMT StatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLLEN BufferLength, SQLLEN *StrLen_or_IndPtr);
  • 示例 创建一个对数据库执行CREATE的审计策略。 --创建adt1策略。 gaussdb=# CREATE AUDIT POLICY adt1 PRIVILEGES CREATE; --查看adt1策略。 gaussdb=# SELECT * FROM GS_AUDITING_POLICY; polname | polcomments | modifydate | polenabled ---------+-------------+----------------------------+------------ adt1 | | 2023-11-06 16:41:40.947417 | t --查看审计策略的存放位置。 gaussdb=# SHOW audit_directory; --删除审计策略adt1。 gaussdb=# DROP AUDIT POLICY adt1; 创建一个审计策略,仅审计用户dev_audit进行CREATE操作 。 --创建dev_audit用户。 gaussdb=# CREATE USER dev_audit PASSWORD '********'; --创建一个表tb_for_audit。 gaussdb=# CREATE TABLE tb_for_audit(col1 text, col2 text, col3 text); --创建基于tb_for_audit表的adt_lb0资源标签。 gaussdb=# CREATE RESOURCE LABEL adt_lb0 add TABLE(public.tb_for_audit); --创建针对adt_lb0资源进行create操作的adt2审计策略。 gaussdb=# CREATE AUDIT POLICY adt2 PRIVILEGES CREATE ON LABEL(adt_lb0) FILTER ON ROLES(dev_audit); --删除审计策略adt2。 gaussdb=# DROP AUDIT POLICY adt2; --删除表tb_for_audit。 gaussdb=# DROP TABLE tb_for_audit; --删除dev_audit用户。 gaussdb=# DROP USER dev_audit; 创建一个仅审计记录用户dev_audit,客户端工具为gsql,IP地址为'10.20.30.40', '127.0.0.0/24',在执行针对adt_lb0资源进行的SELECT、INSERT、DELETE操作数据库的审计策略。 --创建dev_audit用户。 gaussdb=# CREATE USER dev_audit PASSWORD '********'; --创建审计策略adt3。 gaussdb=# CREATE AUDIT POLICY adt3 ACCESS SELECT ON LABEL(adt_lb0), INSERT ON LABEL(adt_lb0), DELETE FILTER ON ROLES(dev_audit), APP(gsql), IP('10.20.30.40', '127.0.0.0/24'); --删除审计策略adt3。 gaussdb=# DROP AUDIT POLICY adt3; --删除dev_audit用户。 gaussdb=# DROP USER dev_audit;
  • 参数说明 policy_name 审计策略名称,需要唯一,不可重复。 取值范围:字符串,要符合标识符命名规范,且最大长度不超过63个字符。若超过63个字符,数据库会截断并保留前63个字符当作审计策略名称。当审计策略名称中包含大写字母时,数据库会自动转换为小写字母,如果需要创建包含大写字母的审计策略名称则需要使用双引号括起来。 标识符需要为小写字母(a-z)、大写字母(A-Z)、下划线(_)、数字(0~9)或美元符号($),且必须以字母或下划线开头。 resource_label_name 资源标签名称。 DDL 指的是针对数据库执行如下操作时进行审计,目前支持:CREATE、ALTER、DROP、ANALYZE、COMMENT、GRANT、REVOKE、SET、SHOW。 取值为ANALYZE时,ANALYZE和VACCUM操作都会被审计。 DML 指的是针对数据库执行如下操作时进行审计,目前支持:SELECT、COPY、DEALLOCATE、DELETE、EXECUTE、INSERT、PREPARE、REINDEX、TRUNCATE、UPDATE。 ALL 指的是上述DDL或DML中支持的所有对数据库的操作。当形式为{ DDL | ALL }时,ALL指所有DDL操作;当形式为{ DML | ALL }时,ALL指所有DML操作。 FILTER_TYPE 描述策略过滤的条件类型,包括APP、ROLES、IP。 filter_value 指具体过滤信息内容。 ENABLE|DISABLE 可以打开或关闭统一审计策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。
  • 注意事项 审计策略的创建与维护有权限限制,只有poladmin、sysadmin或初始用户有权限进行此操作。 在创建审计策略之前,需要确保已经开启安全策略开关,即设置GUC参数“enable_security_policy=on”后,脱敏策略才会生效。 系统管理员或安全策略管理员可以访问GS_AUDITING_POLICY、GS_AUDITING_POLICY_ACCESS、GS_AUDITING_POLICY_PRIVILEGES和GS_AUDITING_POLICY_FILTERS系统表,查询已创建的审计策略。 审计策略名称应具有唯一性,避免与现有策略产生冲突。可以使用IF NOT EXISTS来检查指定的审计策略是否存在,以避免重复创建。 在使用DATABASE LINK功能的场景下,客户端发起的DATABASE LINK请求,实际的发送方是服务端,发送端IP地址等相关的属性将是服务端的值。详情见DATABASE LINK。
  • 语法格式 CREATE AUDIT POLICY [ IF NOT EXISTS ] policy_name { { privilege_audit_clause | access_audit_clause } [, ... ] [ filter_group_clause ] [ ENABLE | DISABLE ] }; privilege_audit_clause: 1 PRIVILEGES { DDL | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ] access_audit_clause: ACCESS { DML | ALL } [ ON LABEL ( resource_label_name [, ... ] ) ]
  • gs_bm25_distance_textarr 功能说明:返回bm25文档相似分数,只在使用BM25索引检索时有效。 入参类型:text[], text[] 出参类型:double precision 代码示例: -- 建表及BM25索引 gaussdb=# CREATE TABLE st_information (st_id SERIAL PRIMARY KEY, st_name TEXT[], st_email TEXT[]); gaussdb=# CREATE INDEX st_information_st_email_bm25_index ON st_information USING bm25(st_email); -- 执行检索 gaussdb=# SELECT /*+ indexscan(st_information, st_information_st_email_bm25_index) */ *, gs_bm25_distance_textarr(st_email, '{common-domain@xyz.com}') AS score FROM st_information ORDER BY st_email ### '{common-domain@xyz.com}' desc LIMIT 10;
  • gs_bm25_distance_text 功能说明:返回bm25文档相似分数,只在使用BM25索引检索时有效。 入参类型:text, text 出参类型:double precision 代码示例: -- 建表及BM25索引 gaussdb=# CREATE TABLE t1(_id TEXT UNIQUE, title TEXT, texts TEXT, metadata TEXT) WITH (storage_type=astore); gaussdb=# CREATE INDEX "bm25_idx1" ON "t1" USING bm25 ("texts"); -- 执行检索 gaussdb=# SELECT /*+ indexscan(t1, bm25_idx1) */ _id, gs_bm25_distance_text(texts, 'drop table t1;') AS SCORE FROM t1 ORDER BY texts ### 'drop table t1;' desc LIMIT 10;
  • gs_bm25_tokenize 功能说明:使用指定词典对输入文本进行分词操作,返回被分割的单词文本数组。 入参类型:text, cstring(默认值"pg_catalog.simple_cn_segmentation") 出参类型:text[] 代码示例: gaussdb=# SELECT gs_bm25_tokenize('高斯数据库'); gaussdb=# SELECT gs_bm25_tokenize('高斯数据库', 'pg_catalog.simple_cn_segmentation');
  • gs_bm25_inspect 功能说明:显示索引磁盘使用和内部词倒排信息等数据。 入参类型:text 出参类型:record 代码示例: -- 建表及BM25索引 gaussdb=# CREATE TABLE st_information (st_id SERIAL PRIMARY KEY, st_name TEXT[], st_email TEXT[]); gaussdb=# CREATE INDEX st_information_st_email_bm25_index ON st_information USING bm25(st_email); -- 执行检索 gaussdb=# SELECT * FROM gs_bm25_inspect('st_information_st_email_bm25_index');
  • ### 场景1: 功能说明:基于BM25算法族计算两个文本间的相似度,只对使用BM25索引的查询有效。 左参数类型:text 右参数类型:text 返回值类型:double precision 代码示例: -- 建表及BM25索引 gaussdb=# CREATE TABLE t1(_id TEXT UNIQUE, title TEXT, texts TEXT, metadata TEXT) WITH (storage_type=astore); gaussdb=# CREATE INDEX "bm25_idx1" ON "t1" USING bm25 ("texts"); -- 执行检索 gaussdb=# SELECT /*+ indexscan(t1, bm25_idx1) */ _id, texts ### 'drop table t1;' AS SCORE FROM t1 ORDER BY SCORE desc LIMIT 10; 场景2: 功能说明:基于BM25算法族计算两个分词文本数组间的相似度,只对使用BM25索引的查询有效。 左参数类型:text[] 右参数类型:text[] 返回值类型:double precision 代码示例: -- 建表及BM25索引 gaussdb=# CREATE TABLE st_information (st_id SERIAL PRIMARY KEY, st_name TEXT[], st_email TEXT[]); gaussdb=# CREATE INDEX st_information_st_email_bm25_index ON st_information USING bm25(st_email); -- 执行检索 gaussdb=# SELECT /*+ indexscan(st_information, st_information_st_email_bm25_index) */ st_id, st_email ### '{common-domain@xyz.com}' AS score FROM st_information ORDER BY SCORE desc LIMIT 10;
  • PG_USER_STATUS PG_USER_STATUS系统表存储访问数据库用户的状态信息。需要有系统管理员权限才可以访问此系统表。 表1 PG_USER_STATUS字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roloid oid 角色的标识。 failcount integer 尝试失败次数。 locktime timestamp with time zone 默认显示角色的创建日期,如果角色被管理员锁定,或者登录失败次数超过阈值被锁定,则显示角色被锁定的日期。 rolstatus smallint 角色的状态。 0:正常状态。 1:由于登录失败次数超过阈值被锁定了一定的时间。 2:被管理员锁定。 3:登录失败次数超过阈值,但不锁定账户。 permspace bigint 角色已经使用的永久表存储空间大小。 tempspace bigint 角色已经使用的临时表存储空间大小。 passwordexpired smallint 密码是否失效。 0:密码有效。 1:密码失效。 父主题: 用户和权限管理
  • PG_EXTENSION PG_EXTENSION系统表存储关于所安装扩展的信息。 GaussDB 默认扩展是plpgsql、DIST_FDW、FILE_FDW、LOG_FDW、DBLINK_FDW、PACKAGES、SECURITY_PLUGIN、GSSTAT_PLUGIN、NUMERIC_ENHANCE、PKG_DBE_RAW、PKG_DBE_OUTPUT、PKG_DBE_UTILITY、PKG_ILM、PKG_DBE_XMLGEN、PKG_DBE_STATS、PKG_DBE_XML、PKG_DBE_DESCRIBE和PKG_PL_PROFILER。该系统表为内部使用,不建议用户使用。 表1 PG_EXTENSION 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 extname name 扩展名。 extowner oid 扩展的所有者。 extnamespace oid 扩展导出对象的名称空间。 extrelocatable boolean 标识此扩展是否可迁移到其他名称空间,true表示允许。 extversion text 扩展的版本号。 extconfig oid[] 扩展的配置信息。 extcondition text[] 扩展配置信息的过滤条件。 父主题: 其他系统表
  • 查看和停止正在运行的查询语句 通过视图PG_STAT_ACTIVITY可以查看正在运行的查询语句。方法如下: 设置参数track_activities为on。 1 SET track_activities = on; 当此参数为on时,数据库系统才会获取当前活动查询的运行信息。 查看正在运行的查询语句。以查看正在运行的查询语句所连接的数据库名、执行查询的用户、查询状态及查询对应的PID为例: 1 SELECT datname, usename, state,pid FROM pg_stat_activity; 1 2 3 4 5 6 7 8 datname | usename | state | pid ----------+---------+--------+----------------- testdb | Ruby | active | 140298793514752 testdb | Ruby | active | 140298718004992 testdb | Ruby | idle | 140298650908416 testdb | Ruby | idle | 140298625742592 testdb | omm | active | 140298575406848 (5 rows) 如果state字段显示为idle,则表明此连接处于空闲,等待用户输入命令。 如果仅需要查看非空闲的查询语句,则执行如下命令查看: 1 SELECT datname, usename, state, pid FROM pg_stat_activity WHERE state != 'idle'; 若需要取消运行时间过长的查询,通过pg_terminate_backend(pid...函数,根据线程ID(即2中查询结果的pid字段)结束会话。 1 SELECT PG_TERMINATE_BACKEND(140298793514752); 显示类似如下信息,表示结束会话成功。 1 2 3 4 PG_TERMINATE_BACKEND ---------------------- t (1 row) 显示类似如下信息,表示用户执行了结束当前会话的操作。 1 2 FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command gsql客户端使用pg_terminate_backend(pid...函数结束当前正在执行会话的后台线程时,如果当前的用户是初始用户,客户端不会退出而是自动重连,即还会返回“The connection to the server was lost. Attempting reset: Succeeded.”;否则客户端会重连失败,即返回。“The connection to the server was lost. Attempting reset: Failed.”。这是因为只有初始用户可以免密登录,普通用户不能免密登录,从而重连失败。 对于使用pg_terminate_backend(pid...函数结束非活跃的后台线程时,如果打开了线程池,此时空闲的会话没有线程ID,无法结束会话。非线程池模式下,结束的会话不会自动重连。
  • 查看数据库用户 通过GS_USER可以查看数据库中所有用户的列表,还可以查看用户ID(USESYSID)和用户权限。 1 2 3 4 5 6 7 8 SELECT * FROM gs_user; usename | usesysid | usecreatedb | usesuper | usecatupd | userepl | passwd | valbegin | valuntil | respool | parent | spacelimit | useconfig | nodegroup | tempspacelimit | spillsp acelimit | usemonitoradmin | useoperatoradmin | usepolicyadmin ---------+----------+-------------+----------+-----------+---------+----------+----------+----------+--------------+--------+------------+-----------+-----------+----------------+-------- ---------+-----------------+------------------+---------------- omm | 10 | t | t | t | t | ******** | | | default_pool | 0 | | | | | | t | t | t (1 row)
  • 查看数据库中包含的表 在public Schema下新建五张表: gaussdb=# CREATE TABLE public.search_table_t1(a int) distribute by hash(a); CREATE TABLE gaussdb=# CREATE TABLE public.search_table_t2(b int) distribute by hash(b); CREATE TABLE gaussdb=# CREATE TABLE public.search_table_t3(c int) distribute by hash(c); CREATE TABLE gaussdb=# CREATE TABLE public.search_table_t4(d int) distribute by hash(d); CREATE TABLE gaussdb=# CREATE TABLE public.search_table_t5(e int) distribute by hash(e); CREATE TABLE 在PG_TABLES系统表中查看public Schema中包含的前缀为search_table的表: 1 gaussdb=# SELECT distinct(tablename) FROM pg_tables WHERE SCHEMANAME = 'public' AND TABLENAME LIKE 'search_table%'; 结果如下: 1 2 3 4 5 6 7 8 tablename ----------------- search_table_t1 search_table_t2 search_table_t3 search_table_t4 search_table_t5 (5 rows)
  • ADM_AUDIT_TRAIL ADM_AUDIT_TRAIL显示所有标准审计跟踪条目,GaussDB审计信息主要通过gs_query_audit函数查询,该视图同时存在于PG_CATALOG和SYS schema下。仅拥有AUDITADMIN属性及ADM_AUDIT_TRAIL的SELECT权限的用户才可以查看审计信息。三权分立未开启时,拥有SYSADMIN属性的用户也可以查看审计信息。 在分布式下,gs_query_audit函数只能查询当前节点的审计信息。 表1 ADM_AUDIT_TRAIL字段 名称 类型 描述 os_username character varying(255) 暂不支持,值为NULL。 username character varying(128) 操作被审计的用户的名称,不是用户id。 userhost character varying(128) 暂不支持,值为NULL。 terminal character varying(255) 暂不支持,值为NULL。 timestamp date 在本地数据库会话时区中创建审计跟踪条目的日期和时间(由审计会话创建的条目的用户登录日期和时间)。 owner character varying(128) 受操作影响的对象的创建者。 obj_name character varying(128) 受操作影响的对象的名称。 action numeric 暂不支持,值为NULL。 action_name character varying(28) action列中的数字代码对应的action类型名称。 说明: GaussDB的action_name字段与ORA数据库审计动作不一致。 new_owner character varying(128) 暂不支持,值为NULL。 new_name character varying(128) 暂不支持,值为NULL。 obj_privilege character varying(32) 暂不支持,值为NULL。 sys_privilege character varying(40) 暂不支持,值为NULL。 admin_option character varying(1) 暂不支持,值为NULL。 grantee character varying(128) 暂不支持,值为NULL。 audit_option character varying(40) 暂不支持,值为NULL。 ses_actions character varying(19) 暂不支持,值为NULL。 logoff_time date 暂不支持,值为NULL。 logoff_lread numeric 暂不支持,值为NULL。 logoff_pread numeric 暂不支持,值为NULL。 logoff_lwrite numeric 暂不支持,值为NULL。 logoff_dlock character varying(40) 暂不支持,值为NULL。 comment_text character varying(4000) 暂不支持,值为NULL。 sessionid numeric 暂不支持,值为NULL。 entryid numeric 暂不支持,值为NULL。 statementid numeric 暂不支持,值为NULL。 returncode numeric 暂不支持,值为NULL。 priv_used character varying(40) 暂不支持,值为NULL。 client_id character varying(128) 暂不支持,值为NULL。 econtext_id character varying(64) 暂不支持,值为NULL。 session_cpu numeric 暂不支持,值为NULL extended_timestamp timestamp(6) with time zone 创建审计跟踪条目的时间戳(创建条目的用户登录时间戳UTC(协调通用)中的审计会话时间)时区。 proxy_sessionid numeric 暂不支持,值为NULL。 global_uid character varying(32) 暂不支持,值为NULL。 instance_number numeric 暂不支持,值为NULL。 os_process character varying(16) 暂不支持,值为NULL。 transactionid text 访问或修改对象事务的事务标识符。 说明: GaussDB的transactionid字段与ORA数据库中transactionid数据的类型保持一致。 scn numeric 暂不支持,值为NULL。 sql_bind nvarchar2(2000) 暂不支持,值为NULL。 sql_text nvarchar2 查询的SQL文本。 说明: GaussDB的sql_text字段为解析后sql描述语句,不完全与执行的sql语句相同。 obj_edition_name character varying(128) 暂不支持,值为NULL。 dbid numeric 暂不支持,值为NULL。 rls_info clob 暂不支持,值为NULL。 current_user character varying(128) 暂不支持,值为NULL。 父主题: 审计
  • STAT_BAD_BLOCK 获得当前节点表、索引等文件的读取失败信息,如表1所示。 表1 STAT_BAD_BLOCK字段 名称 类型 描述 nodename text 节点名称。 databaseid integer database的oid。 tablespaceid integer tablespace的oid。 relfilenode integer relation的file node。 bucketid smallint 一致性hash bucket ID。 forknum integer fork编号。 error_count integer error的数量。 first_time timestamp with time zone 页面损坏第一次出现的时间。 last_time timestamp with time zone 页面损坏最后出现的时间。 父主题: Object
  • 参数说明 参数 参数说明 ctx 表示给定的上下文。 query 被执行的SQL语句。 args 被执行SQL语句需要绑定的参数。支持按位置绑定和按名称绑定,详情见DB类型中的示例。 stmt 已有的预处理语句,一般指prepare语句返回的预处理语句。 Query类接口Query()、QueryContext()、QueryRow()、QueryRowContext()通常用于查询语句,如SELECT语句。操作语句使用Exec()接口执行,若非查询语句通过Query类接口执行,则执行结果可能与预期不符,因此不建议使用Query类接口执行非查询语句,例如UPDATE/INSERT等。 使用Query类接口执行查询语句的结果需要通过type Rows中Next()接口获取,若不通过Next()接口获取,可能会产生不可预期的错误。
  • 示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 gaussdb=# BEGIN FOR ROW_TRANS IN SELECT first_name FROM hr.staffs LOOP DBE_OUTPUT.PRINT_LINE (ROW_TRANS.first_name ); END LOOP; END; / --执行结果 gaussdb=# Tom ANONYMOUS BLOCK EXECUTE --创建表 gaussdb=# CREATE TABLE integerTable1( A INTEGER) DISTRIBUTE BY hash(A); gaussdb=# CREATE TABLE integerTable2( B INTEGER) DISTRIBUTE BY hash(B); gaussdb=# INSERT INTO integerTable2 VALUES(2); --多游标共享游标属性的标量 gaussdb=# DECLARE CURSOR C1 IS SELECT A FROM integerTable1;--声明游标 CURSOR C2 IS SELECT B FROM integerTable2; PI_A INTEGER; PI_B INTEGER; BEGIN OPEN C1;--打开游标 OPEN C2; FETCH C1 INTO PI_A; ---- C1%FOUND 和 C2%FOUND 值为 FALSE FETCH C2 INTO PI_B; ---- C1%FOUND 和 C2%FOUND 的值都为 TRUE --判断游标状态 IF C1%FOUND THEN IF C2%FOUND THEN DBE_OUTPUT.PRINT_LINE('Dual cursor share parameter.'); END IF; END IF; CLOSE C1;--关闭游标 CLOSE C2; END; / ANONYMOUS BLOCK EXECUTE --删除临时表 gaussdb=# DROP TABLE integerTable1; gaussdb=# DROP TABLE integerTable2;
  • GS_DATABASE_LINK GS_DATABASE_LINK系统表是用于存储DATABASE LINK信息的系统表,主要记录的是DATABASE LINK对象的详细信息。只有具备sysadmin权限的用户才可以对该系统表进行读操作。 表1 GS_DATABASE_LINK字段 名称 类型 描述 oid oid 当前DATABASE LINK对象的唯一id(隐含属性,必须明确选择)。 dlname name 当前DATABASE LINK的名称。 dlowner oid 当前DATABASE LINK的拥有者id,显示public则为0。 dlfdw oid 当前DATABASE LINK的外部数据封装器的OID。 dlcreater oid 当前DATABASE LINK创建者的id。 options text[] 当前DATABASE LINK连接信息,使用"keyword=value"。 useroptions text[] 当前DATABASE LINK连接远端所使用的用户信息,使用"keyword=value"。 dlacl aclitem[] 当前DATABASE LINK访问权限。 父主题: DATABASE LINK
  • PG_FOREIGN_SERVER PG_FOREIGN_SERVER系统表存储外部服务器定义。一个外部服务器描述了一个外部数据源,例如一个远程服务器。外部服务器通过外部数据封装器访问。 表1 PG_FOREIGN_SERVER字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 srvname name - 外部服务器名。 srvowner oid PG_AUTHID.oid 外部服务器的所有者。 srvfdw oid PG_FOREIGN_DATA_WRAPPER.oid 这个外部服务器的外部数据封装器的OID。 srvtype text - 服务器的类型(可选)。 srvversion text - 服务器的版本(可选)。 srvacl aclitem[] - 访问权限。 srvoptions text[] - 外部服务器指定选项,使用“keyword=value”格式的字符串。 父主题: 其他系统表
共100000条