华为云用户手册

  • 原型 1 2 3 4 SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
  • 参数 表1 SQLSetEnvAttr参数 关键字 参数说明 EnvironmentHandle 环境句柄。 Attribute 需设置的环境属性,可为如下值: SQL_ATTR_ODBC_VERSION:指定ODBC版本。 SQL_CONNECTION_POOLING:连接池属性。 SQL_OUTPUT_NTS:指明驱动器返回字符串的形式。 ValuePtr 指向对应Attribute的值。依赖于Attribute的值,ValuePtr可能是32位整型值,或为以空结束的字符串。 StringLength 如果ValuePtr指向字符串或二进制缓冲区,这个参数是*ValuePtr长度,如果ValuePtr指向整型,忽略StringLength。
  • GLOBAL_STATIO_ALL_SEQUEN CES GLOBAL_STATIO_ALL_SEQUENCES包含各节点的数据库中每个序列的每一行,显示特定序列关于I/O的统计。 表1 GLOBAL_STATIO_ALL_SEQUENCES字段 名称 类型 描述 node_name name 节点名称。 relid oid 序列OID。 schemaname name 序列中模式名。 relname name 序列名。 blks_read bigint 从序列中读取的磁盘块数。 blks_hit bigint 序列中缓存命中数。 父主题: Cache/IO
  • 获取结果集中的数据 ResultSet对象提供了丰富的方法,以获取结果集中的数据。获取数据常用的方法如表4所示,其他方法请参考JDK官方文档。 表4 ResultSet对象的常用方法 方法 描述 getInt(int columnIndex) 按列标获取int型数据。 getInt(String columnLabel) 按列名获取int型数据。 getString(int columnIndex) 按列标获取String型数据。 getString(String columnLabel) 按列名获取String型数据。 getDate(int columnIndex) 按列标获取Date型数据 getDate(String columnLabel) 按列名获取Date型数据。
  • 获取结果集中光标的位置 对于可滚动的结果集,可调用定位方法来改变光标的位置。JDBC驱动程序提供了获取结果集中光标所处位置的方法。获取光标位置的方法如表3所示。 表3 获取结果集光标的位置 方法 描述 isFirst() 是否在第一行。 isLast() 是否在最后一行。 isBeforeFirst() 是否在第一行之前。 isAfterLast() 是否在最后一行之后。 getRow() 获取当前在第几行。
  • 在结果集中定位 ResultSet对象具有指向其当前数据行的光标。最初,光标被置于第一行之前,next方法将光标移动到下一行。因为该方法在ResultSet对象没有下一行时返回false,所以可以在while循环中使用它来迭代结果集。但对于可滚动的结果集,JDBC驱动程序提供更多的定位方法,使ResultSet指向特定的行。定位方法如表2所示。 表2 在结果集中定位的方法 方法 描述 next() 把ResultSet向下移动一行。 previous() 把ResultSet向上移动一行。 beforeFirst() 把ResultSet定位到第一行之前。 afterLast() 把ResultSet定位到最后一行之后。 first() 把ResultSet定位到第一行。 last() 把ResultSet定位到最后一行。 absolute(int row) 把ResultSet移动到参数指定的行数。 relative(int rows) rows为正数表示把ResultSet向下移动rows行,rows为负数表示把ResultSet向上移动(-rows)行。
  • 设置结果集类型 不同类型的结果集有各自的应用场景,应用程序需要根据实际情况选择相应的结果集类型。在执行SQL语句过程中,需要先创建相应的语句对象,而部分创建语句对象的方法提供了设置结果集类型的功能。具体的参数设置如表1所示。涉及的Connection的方法如下: 1 2 3 4 5 6 7 8 //创建一个Statement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 createStatement(int resultSetType, int resultSetConcurrency); //创建一个PreparedStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 prepareStatement(String sql, int resultSetType, int resultSetConcurrency); //创建一个CallableStatement对象,该对象将生成具有给定类型和并发性的ResultSet对象。 prepareCall(String sql, int resultSetType, int resultSetConcurrency); 表1 结果集类型 参数 描述 resultSetType 表示结果集的类型,具体有三种类型: ResultSet.TYPE_FORWARD_ONLY:ResultSet只能向前移动。是缺省值。 ResultSet.TYPE_SCROLL_SENSITIVE:在修改后重新滚动到修改所在行,可以看到修改后的结果。 ResultSet.TYPE_SCROLL_INSENSITIVE:对可修改例程所做的编辑不进行显示。 说明: 结果集从数据库中读取了数据之后,即使类型是ResultSet.TYPE_SCROLL_SENSITIVE,也不会看到由其他事务在这之后引起的改变。调用ResultSet的refreshRow()方法,可进入数据库并从其中取得当前游标所指记录的最新数据。 resultSetConcurrency 表示结果集的并发,具体有两种类型: ResultSet.CONCUR_READ_ONLY:如果不从结果集中的数据建立一个新的更新语句,不能对结果集中的数据进行更新。 ResultSet.CONCUR_UPDATEABLE:可改变的结果集。对于可滚动的结果集,可对结果集进行适当的改变。
  • GLOBAL_STAT_ALL_TABLES 得到各节点数据中每个表的一行(包括TOAST表)的统计信息。 表1 GLOBAL_STAT_ALL_TABLES字段 名称 类型 描述 node_name name 节点名称。 relid oid 表的OID。 schemaname name 此表的模式名。 relname name 表名。 seq_scan bigint 此表发起的顺序扫描数。 seq_tup_read bigint 顺序扫描抓取的活跃行数。 idx_scan bigint 此表发起的索引扫描数。 idx_tup_fetch bigint 索引扫描抓取的活跃行数。 n_tup_ins bigint 插入行数。 n_tup_upd bigint 更新行数。 n_tup_del bigint 删除行数。 n_tup_hot_upd bigint HOT更新行数(比如没有更新所需的单独索引)。 n_live_tup bigint 估计活跃行数。 n_dead_tup bigint 估计死行数。 last_vacuum timestamp with time zone 最后一次此表是手动清理的(不计算VACUUM FULL)的时间。 last_autovacuum timestamp with time zone 上次被autovacuum守护进程清理的时间。 last_analyze timestamp with time zone 上次手动分析这个表的时间。 last_autoanalyze timestamp with time zone 上次被autovacuum守护进程分析时间。 vacuum_count bigint 这个表被手动清理的次数(不计算VACUUM FULL)。 autovacuum_count bigint 这个表被autovacuum清理的次数。 analyze_count bigint 这个表被手动分析的次数。 autoanalyze_count bigint 这个表被autovacuum守护进程分析的次数。 父主题: Object
  • DBE_PERF Schema DBE_PERF Schema内视图主要用来诊断性能问题,也是WDR Snapshot的数据来源。数据库安装后,默认只有初始用户具有模式dbe_perf的权限。若是由旧版本升级而来,为保持权限的前向兼容,模式dbe_perf的权限与旧版本保持一致。从OS、Instance、Memory等多个维度划分组织视图,并且符合如下命名规范: GLOBAL_开头的视图,代表从数据库节点请求数据,并将数据追加对外返回,不会处理数据。 SUMMARY_开头的视图,代表是将数据库内的数据概述,多数情况下是返回数据库节点(有时只有数据库主节点的)的数据,会对数据进行加工和汇聚。 非这两者开头的视图,一般代表本地视图,不会向其它数据库节点请求数据。 OS Instance Memory File Object Workload Session/Thread Transaction Query Cache/IO Utility Lock Wait Events Configuration Operator Workload Manager Global Plancache RTO & RPO 父主题: Schema
  • PG_AMPROC PG_AMPROC系统表存储有关与访问方法操作符族相关联的支持过程的信息。每个属于某个操作符族的支持过程都占有一行。 表1 PG_AMPROC字段 名称 类型 引用 描述 oid oid - 行标识符(隐含属性,必须明确选择)。 amprocfamily oid PG_OPFAMILY.oid 该项的操作符族。 amproclefttype oid PG_TYPE.oid 相关操作符的左输入数据类型。可能取值及其描述见于数据类型。 amprocrighttype oid PG_TYPE.oid 相关操作符的右输入数据类型。可能取值及其描述见于数据类型。 amprocnum smallint - 支持过程编号。 amproc regproc PG_PROC.proname 过程的OID。 amproclefttype和amprocrighttype字段的习惯解释,标识一个特定支持过程支持的操作符的左和右输入类型。对于某些访问方式,匹配支持过程本身的输入数据类型,对其他的则不这样。有一个对索引的“缺省”支持过程的概念,amproclefttype和amprocrighttype都等于索引操作符类的opcintype。 父主题: 系统表
  • ADM_DATA_FILES ADM_DATA_FILES视图显示数据库文件的描述。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ADM_DATA_FILES字段 名称 类型 描述 tablespace_name name 文件所属的表空间的名称。 bytes double precision 文件的字节长度。 父主题: 系统视图
  • GS_DB_PRIVILEGES GS_DB_PRIVILEGES系统视图记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGES字段 名称 类型 描述 rolename name 用户名。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option text 是否具有privilege_type列记录的ANY权限的再授权权限。 yes:表示具有。 no:表示不具有。 父主题: 系统视图
  • 参数说明 IF EXISTS 如果指定的表不存在,则发出一个notice而不是抛出一个错误。 schema 模式名称。 table_name 表名称。 CASCADE | RESTRICT CASCADE:表示允许级联删除依赖于该表的对象(比如视图、触发器、索引;注:关联的表对象无法被级联删除)。 RESTRICT(缺省项):表示有依赖于该表的对象存在时,该表无法被删除。此选项为缺省值。 PURGE 该参数表示即使开启回收站功能,drop表时,也会直接物理删除表,而不是将其放入回收站中。
  • PG_DIRECTORY PG_DIRECTORY系统表用于保存用户添加的directory对象可以通过CREATE DIRECTORY语句向该表中添加记录,当enable_access_server_directory=off时,只允许初始用户创建directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象。 表1 PG_DIRECTORY字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 dirname name 目录对象的名称。 owner oid 目录对象的所有者。 dirpath text 目录路径。 diracl aclitem[] 访问权限。 父主题: 系统表
  • PG_GET_INVALID_BACKENDS PG_GET_INVALID_BACKENDS视图提供显示数据库主节点上连接到当前备机的后台线程信息。 表1 PG_GET_INVALID_BACKENDS字段 名称 类型 描述 pid bigint 线程ID。 node_name text 后台线程中连接的节点信息。 dbname name 当前连接的数据库。 backend_start timestamp with time zone 后台线程启动的时间。 query text 后台线程正在执行的查询语句。 父主题: 系统视图
  • PG_RUNNING_XA CTS PG_RUNNING_XACTS视图主要功能是显示当前节点运行事务的信息。 表1 PG_RUNNING_XACTS字段 名称 类型 描述 handle integer 事务对应的事务管理器中的槽位句柄,该值恒为-1。 gxid xid 事务id号。 state tinyint 事务状态。 3:prepared。 0:starting。 node text 节点名称。 xmin xid 节点上当前数据涉及的最小事务号。 vacuum boolean 表示当前事务是否是lazy vacuum事务。 t(true):表示是。 f(false):表示不是。 timeline bigint 数据库重启次数。 prepare_xid xid 处于prepared状态的事务的id,若事务不在prepared状态,值为0。 pid bigint 事务对应的线程id。 next_xid xid 其余节点发送给当前节点的事务id,该值恒为0。 父主题: 系统视图
  • 咨询锁函数 咨询锁函数用于管理咨询锁(Advisory Lock)。 pg_advisory_lock(key bigint) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_lock锁定应用程序定义的资源,该资源可以用一个64位或两个不重叠的32位键值标识。如果已经有另外的会话锁定了该资源,则该函数将阻塞到该资源可用为止。这个锁是排他的。多个锁定请求将会被压入栈中,因此,如果同一个资源被锁定了三次,它必须被解锁三次以将资源释放给其他会话使用。 pg_advisory_lock(key1 int, key2 int) 描述:获取会话级别的排他咨询锁。 返回值类型:void 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_advisory_lock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,获取指定数据库的排他咨询锁。 返回值类型:void pg_advisory_lock_shared(key bigint) 描述:获取会话级别的共享咨询锁。 返回值类型:void pg_advisory_lock_shared(key1 int, key2 int) 描述:获取会话级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_lock_shared类似于pg_advisory_lock,不同之处仅在于共享锁会话可以和其他请求共享锁的会话共享资源,但排他锁除外。 pg_advisory_unlock(key bigint) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean pg_advisory_unlock(key1 int, key2 int) 描述:释放会话级别的排他咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock释放先前取得的排他咨询锁。如果释放成功则返回true。如果实际上并未持有指定的锁,将返回false并在服务器中产生一条SQL警告信息。 pg_advisory_unlock(lock_id int4, lock_id int4, datebase_name Name) 描述:通过传入锁ID和数据库名字,释放指定数据库上的排他咨询锁。 返回值类型:Boolean 备注:如果释放成功则返回true;如果未持有锁,则返回false。 pg_advisory_unlock_shared(key bigint) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean pg_advisory_unlock_shared(key1 int, key2 int) 描述:释放会话级别的共享咨询锁。 返回值类型:Boolean 备注:pg_advisory_unlock_shared类似于pg_advisory_unlock,不同之处在于该函数释放的是共享咨询锁。 pg_advisory_unlock_all() 描述:释放当前会话持有的所有咨询锁。 返回值类型:void 备注:pg_advisory_unlock_all将会释放当前会话持有的所有咨询锁,该函数在会话结束的时候被隐含调用,即使客户端异常地断开连接也是一样。 pg_advisory_xact_lock(key bigint) 描述:获取事务级别的排他咨询锁。 返回值类型:void pg_advisory_xact_lock(key1 int, key2 int) 描述:获取事务级别的排他咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock类似于pg_advisory_lock,不同之处在于锁是自动在当前事务结束时释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_advisory_xact_lock_shared(key bigint) 描述:获取事务级别的共享咨询锁。 返回值类型:void pg_advisory_xact_lock_shared(key1 int, key2 int) 描述:获取事务级别的共享咨询锁。 返回值类型:void 备注:pg_advisory_xact_lock_shared类似于pg_advisory_lock_shared,不同之处在于锁是在当前事务结束时自动释放,而且不能被显式的释放。 pg_try_advisory_lock(key bigint) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock类似于pg_advisory_lock,不同之处在于该函数不会阻塞以等待资源的释放。它要么立即获得锁并返回true,要么返回false表示目前不能锁定。 pg_try_advisory_lock(key1 int, key2 int) 描述:尝试获取会话级排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin对键值对(65535, 65535)加会话级别的排他咨询锁,普通用户无权限。 pg_try_advisory_lock_shared(key bigint) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean pg_try_advisory_lock_shared(key1 int, key2 int) 描述:尝试获取会话级共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_lock_shared类似于pg_try_advisory_lock,不同之处在于该函数尝试获得共享锁而不是排他锁。 pg_try_advisory_xact_lock(key bigint) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock(key1 int, key2 int) 描述:尝试获取事务级别的排他咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock类似于pg_try_advisory_lock,不同之处在于如果得到锁,在当前事务的结束时自动释放,而且不能被显式的释放。只允许sysadmin对键值对(65535, 65535)加事务级别的排他咨询锁,普通用户无权限。 pg_try_advisory_xact_lock_shared(key bigint) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean pg_try_advisory_xact_lock_shared(key1 int, key2 int) 描述:尝试获取事务级别的共享咨询锁。 返回值类型:Boolean 备注:pg_try_advisory_xact_lock_shared类似于pg_try_advisory_lock_shared,不同之处在于如果得到锁,在当前事务结束时自动释放,而且不能被显式的释放。 lock_cluster_ddl() 描述:尝试对数据库内所有存活的数据库主节点获取会话级别的排他咨询锁。 返回值类型:Boolean 备注:只允许sysadmin调用,普通用户无权限。 unlock_cluster_ddl() 描述:尝试对数据库主节点会话级别的排他咨询锁。 返回值类型:Boolean 父主题: 系统管理函数
  • PG_ATTRIBUTE PG_ATTRIBUTE系统表存储关于表字段的信息。 表1 PG_ATTRIBUTE字段 名称 类型 描述 attrelid oid 此字段所属表。 attname name 字段名。 atttypid oid 字段类型。 attstattarget integer 控制ANALYZE为这个字段积累的统计细节的级别。 零值表示不收集统计信息。 负数表示使用系统缺省的统计对象。 正数值的确切信息是和数据类型相关的。 对于标量数据类型,A TTS TATTARGET既是要收集的"最常用数值"的目标数目,也是要创建的柱状图的目标数量。 attlen smallint 是本字段类型的PG_TYPE中typlen的拷贝。 attnum smallint 字段编号。 attndims integer 如果该字段是数组,则是维数,否则是0 。 attcacheoff integer 在磁盘上的时候总是-1 ,但是如果加载入内存中的行描述器中,它可能会被更新以缓冲在行中字段的偏移量。 atttypmod integer 记录创建新表时支持的类型特定的数据(比如一个varchar字段的最大长度)。它传递给类型相关的输入和长度转换函数当做第三个参数。其值对那些不需要ATTTYPMOD的类型通常为-1。 attbyval boolean 这个字段类型的PG_TYPE中typbyval的拷贝。 attstorage "char" 这个字段类型的PG_TYPE中typstorage的拷贝。 attalign "char" 这个字段类型的PG_TYPE中typalign的拷贝。 attnotnull boolean 这代表一个非空约束。可以改变这个字段以打开或者关闭这个约束。 atthasdef boolean 这个字段有一个缺省值,此时它对应PG_ATTRDEF表里实际定义此值的记录。 attisdropped boolean 这个字段已经被删除了,不再有效。一个已经删除的字段物理上仍然存在表中,但会被分析器忽略,因此不能再通过SQL访问。 attislocal boolean 这个字段是局部定义在关系中的。请注意一个字段可以同时是局部定义和继承的。 attinhcount integer 这个字段所拥有的直接父表的个数。如果一个字段的父表个数非零,则它就不能被删除或重命名。 attcollation oid 对此列定义的校对列。 attacl aclitem[] 列级访问权限控制。 attoptions text[] 字段属性。目前支持以下两种属性: n_distinct,表示该字段的distinct值数量(不包含字表) n_distinct_inherited,表示该字段的distinct值数量(包含字表) attfdwoptions text[] 外表字段属性。当前支持的dist_fdw、file_fdw、log_fdw未使用外表字段属性。 attinitdefval bytea 存储了此列默认的值表达式。行存表的ADD COLUMN需要使用此字段。 attkvtype tinyint 对某一列指定key value类型。类型包括: 0. ATT_KV_UNDEFINED : 默认 1. ATT_KV_TAG : 维度 2. ATT_KV_FIELD : 指标 3. ATT_KV_TIMETAG :时间列 父主题: 系统表
  • 数据加载和卸载 【建议】在INSERT语句中显式给出插入的字段列表。例如: 1 INSERT INTO task(name,id,comment) VALUES ('task1','100','第100个任务'); 【建议】在批量数据入库之后,或者数据增量达到一定阈值后,建议对表进行ANALYZE操作,防止统计信息不准确而导致的执行计划劣化。 【建议】如果要清理表中的所有数据,建议使用TRUNCATE TABLE方式,不要使用DELETE TABLE方式。DELETE TABLE方式删除性能差,且不会释放那些已经删除了的数据占用的磁盘空间。
  • DDL 【建议】在 GaussDB 中,建议DDL(建表、COMMENT等)操作统一执行。在批处理作业中尽量避免DDL操作。避免大量并发事务对性能的影响。 【建议】在非日志表(unlogged table)使用完后,立即执行数据清理(TRUNCATE)操作。因为在异常场景下,GaussDB不保证非日志表(unlogged table)数据的安全性。 【建议】临时表和非日志表的存储方式建议和基表相同。当基表为行存表时,临时表和非日志表也推荐创建为行存表。 【建议】索引字段的总长度不超过50字节。否则,索引大小会膨胀比较严重,带来较大的存储开销,同时索引性能也会下降。 【建议】不要使用DROP…CASCADE方式删除对象,除非已经明确对象间的依赖关系,以免误删。
  • 异步命令处理函数 PQexec函数对普通的同步应用里提交命令已经足够使用。但是它却有几个缺陷,而这些缺陷可能对某些用户很重要: PQexec等待命令结束,而应用可能还有其它的工作要做(比如维护用户界面等),此时并不希望PQexec阻塞应用。 因为客户端应用在等待结果的时候是处于挂起状态的,所以应用很难判断它是否该尝试结束正在进行的命令。 PQexec只能返回一个PGresult结构。如果提交的命令字符串包含多个SQL命令,除了最后一个PGresult以外都会被PQexec丢弃。 PQexec总是收集命令的整个结果,将其缓存在一个PGresult中。虽然这为应用简化了错误处理逻辑,但是对于包含多行的结果是不切实际的。 不想受到这些限制的应用可以改用下面的函数,这些函数也是构造PQexec的函数:PQsendQuery和PQgetResult。PQsendQueryParams,PQsendPrepare,PQsendQueryPrepared也可以和PQgetResult一起使用。 PQsendQuery PQsendQueryParams PQsendPrepare PQsendQueryPrepared PQflush 父主题: libpq接口参考
  • 示例 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 43 44 45 46 47 48 --创建dev_mask和bob_mask用户。 openGauss=# CREATE USER dev_mask PASSWORD '********'; openGauss=# CREATE USER bob_mask PASSWORD '********'; --创建一个表tb_for_masking。 openGauss=# CREATE TABLE tb_for_masking(col1 text, col2 text, col3 text); --创建资源标签标记敏感列col1。 openGauss=# CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(tb_for_masking.col1); --创建资源标签标记敏感列col2。 openGauss=# CREATE RESOURCE LABEL mask_lb2 ADD COLUMN(tb_for_masking.col2); --对访问敏感列col1的操作创建脱敏策略。 openGauss=# CREATE MASKING POLICY maskpol1 maskall ON LABEL(mask_lb1); --为脱敏策略maskpol1添加描述。 openGauss=# ALTER MASKING POLICY maskpol1 COMMENTS 'masking policy for tb_for_masking.col1'; --修改脱敏策略maskpol1,新增一项脱敏方式。 openGauss=# ALTER MASKING POLICY maskpol1 ADD randommasking ON LABEL(mask_lb2); --修改脱敏策略maskpol1,移除一项脱敏方式。 openGauss=# ALTER MASKING POLICY maskpol1 REMOVE randommasking ON LABEL(mask_lb2); --修改脱敏策略maskpol1,修改一项脱敏方式。 openGauss=# ALTER MASKING POLICY maskpol1 MODIFY randommasking ON LABEL(mask_lb1); --修改脱敏策略maskpol1使之仅对用户dev_mask和bob_mask,客户端工具为gsql,IP地址为'10.20.30.40', '127.0.0.0/24'场景生效。 openGauss=# ALTER MASKING POLICY maskpol1 MODIFY (FILTER ON ROLES(dev_mask, bob_mask), APP(gsql), IP('10.20.30.40', '127.0.0.0/24')); --修改脱敏策略maskpol1,使之对所有用户场景生效。 openGauss=# ALTER MASKING POLICY maskpol1 DROP FILTER; --禁用脱敏策略maskpol1。 openGauss=# ALTER MASKING POLICY maskpol1 DISABLE; --删除脱敏策略。 openGauss=# DROP MASKING POLICY maskpol1; --删除资源标签。 openGauss=# DROP RESOURCE LABEL mask_lb1, mask_lb2; --删除表tb_for_masking。 openGauss=# DROP TABLE tb_for_masking; --删除用户dev_mask和bob_mask。 openGauss=# DROP USER dev_mask, bob_mask;
  • 语法格式 修改策略描述: 1 ALTER MASKING POLICY policy_name COMMENTS policy_comments; 修改脱敏方式: 1 2 3 ALTER MASKING POLICY policy_name [ADD | REMOVE | MODIFY] masking_actions[, ...]*; 其中masking_action: masking_function ON LABEL(label_name[, ...]*) 修改脱敏策略生效场景: 1 ALTER MASKING POLICY policy_name MODIFY(FILTER ON FILTER_TYPE(filter_value[, ...]*)[, ...]*); 移除脱敏策略生效场景,使策略对所用场景生效: 1 ALTER MASKING POLICY policy_name DROP FILTER; 修改脱敏策略开启/关闭: 1 ALTER MASKING POLICY policy_name [ENABLE | DISABLE];
  • 参数说明 policy_name 脱敏策略名称,需要唯一,不可重复。 取值范围:字符串,要符合标识符命名规范。 policy_comments 需要为脱敏策略添加或修改的描述信息。 masking_function 指的是预置的八种脱敏方式或者用户自定义的函数,支持模式。 maskall不是预置函数,硬编码在代码中,不支持\df展示。 预置时脱敏方式如下: maskall | randommasking | creditcardmasking | basicemailmasking | fullemailmasking | shufflemasking | alldigitsmasking | regexpmasking label_name 资源标签名称。 FILTER_TYPE 指定脱敏策略的过滤信息,过滤类型包括:IP、ROLES、APP。 filter_value 指具体过滤信息内容,例如具体的IP,具体的APP名称,具体的用户名。 ENABLE|DISABLE 可以打开或关闭脱敏策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。
  • ADM_HIST_SNAPSHOT ADM_HIST_SNAPSHOT视图记录当前系统中存储的WDR快照数据的索引信息、开始时间。默认只有系统管理员权限才可以访问此系统视图,普通用户需要授权才可以访问。 表1 ADM_HIST_SNAPSHOT字段 名称 类型 描述 snap_id bigint WDR快照序号。 begin_interval_time timestamp WDR快照的开始时间。 父主题: 系统视图
  • SUMMARY_STAT_ALL_INDEXES 显示 GaussDB数据库 的每个索引的访问统计信息。 表1 SUMMARY_STAT_ALL_INDEXES字段 名称 类型 描述 schemaname name 索引的模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 索引上开始的索引扫描数。 idx_tup_read numeric 通过索引上扫描返回的索引项数。 idx_tup_fetch numeric 通过使用索引的简单索引扫描抓取的活表行数。 父主题: Object
  • GS_RECYCLEBIN gs_recyclebin描述了回收站对象的详细信息。 表1 gs_recyclebin字段 名称 类型 描述 oid oid 系统列。 rcybaseid oid 基表对象id,引用gs_recyclebin.oid。 rcydbid oid 当前对象所属数据库oid。 rcyrelid oid 当前对象oid。 rcyname name 回收站对象名称,格式“BIN$unique_id$oid$0”,其中unique_id为最多16字符唯一标识,oid为对象标识符。 rcyoriginname name 原始对象名称。 rcyoperation "char" 操作类型。 d表示drop。 t表示truncate。 rcytype integer 对象类型。 0表示table。 1表示index。 2表示toast table。 3表示toast index。 4表示sequence,指serial、bigserial、smallserial、largeserial类型自动关联的序列对象。 5表示partition。 6表示global index。 rcyrecyclecsn bigint 对象drop、truncate时csn。 rcyrecycletime timestamp with time zone 对象drop、truncate时间。 rcycreatecsn bigint 对象创建时csn。 rcychangecsn bigint 对象定义改变的csn。 rcynamespace oid 包含这个关系的名字空间的OID。 rcyowner oid 关系所有者。 rcytablespace oid 这个关系存储所在的表空间。如果为0,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 rcyrelfilenode oid 回收站对象在磁盘上的文件的名称,如果没有则为0,用于TRUNCATE对象恢复时纹理文件还原。 rcycanrestore bool 是否可以被单独闪回。 rcycanpurge bool 是否可以被单独purge。 rcyfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。 rcyfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。 父主题: 系统表
  • PG_SECLABELS PG_SECLABELS视图显示安全标签的信息。 表1 PG_SECLABELS字段 名称 类型 引用 描述 objoid oid 任意OID属性 该安全标签所属的对象的OID。 classoid oid PG_CLASS.oid 该安全标签所属的对象所在系统表的OID。 objsubid integer - 对于一个在表字段上的安全标签,是字段序号(引用表本身的objoid和classoid)。对于所有其他对象类型,这个字段为0。 objtype text - 该标签所属的对象的类型,文本格式。例如: table:表类型。 column:列类型。 objnamespace oid PG_NAMESPACE.oid 该对象的名称空间的OID,如果不适用,取值为NULL。 objname text - 该标签所属的对象的名称,文本格式。 provider text PG_SECLABEL.provider 该标签的提供者。 label text PG_SECLABEL.label 安全标签名称。 父主题: 系统视图
  • LOCKS LOCKS视图用于查看各打开事务所持有的锁信息。 表1 LOCKS字段 名称 类型 描述 locktype text 被锁定对象的类型:relation,extend,page,tuple,transactionid,virtualxid,object,userlock,advisory。 database oid 被锁定对象所在数据库的OID: 如果被锁定的对象是共享对象,则OID为0。 如果是一个事务ID,则为NULL。 relation oid 关系的OID,如果锁定的对象不是关系,也不是关系的一部分,则为NULL。 page integer 关系内部的页面编号,如果对象不是关系页或者不是行页,则为NULL。 tuple smallint 页面里边的行编号,如果对象不是行,则为NULL。 bucket integer 哈希桶号。 virtualxid text 事务的虚拟ID,如果对象不是一个虚拟事务ID,则为NULL。 transactionid xid 事务的ID,如果对象不是一个事务ID,则为NULL。 classid oid 包含该对象的系统表的OID,如果对象不是普通的数据库对象,则为NULL。 objid oid 对象在其系统表内的OID,如果对象不是普通数据库对象,则为NULL。 objsubid smallint 对于表的一个字段,这是字段编号;对于其他对象类型,这个字段是0;如果这个对象不是普通数据库对象,则为NULL。 virtualtransaction text 持有此锁或者在等待此锁的事务的虚拟ID。 pid bigint 持有或者等待这个锁的服务器线程的逻辑ID。如果锁是被一个预备事务持有的,则为NULL。 sessionid bigint 持有或者等待这个锁的会话ID。如果锁是被一个预备事务持有的,则为NULL。 mode text 这个线程持有的或者是期望的锁模式。 granted boolean 如果锁是持有锁,则为TRUE。 如果锁是等待锁,则为FALSE。 fastpath boolean 如果通过fast-path获得锁,则为TRUE;如果通过主要的锁表获得,则为FALSE。 locktag text 会话等待锁信息,可通过locktag_decode()函数解析。 global_sessionid text 全局会话ID。 父主题: Lock
  • 示例 --创建表。 openGauss=# CREATE TABLE my_table (c1 int, c2 int) WITH(STORAGE_TYPE=ASTORE); --创建全量物化视图。 openGauss=# CREATE MATERIALIZED VIEW foo AS SELECT * FROM my_table; --把物化视图foo重命名为bar。 openGauss=# ALTER MATERIALIZED VIEW foo RENAME TO bar; --删除全量物化视图。 openGauss=# DROP MATERIALIZED VIEW bar; --删除表my_table。 openGauss=# DROP TABLE my_table;
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全