华为云用户手册

  • SUMMARY_STAT_ALL_INDEXES 显示集群内数据库各节点的每个索引的访问统计信息(在CN节点使用。对每个节点索引的访问统计信息汇总求和,其中timestamp类型字段不求和,仅取所有节点中该字段最新值),如表1所示。 表1 SUMMARY_STAT_ALL_INDEXES字段 名称 类型 描述 schemaname name 索引所在的Schema名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan numeric 该索引上执行的索引扫描次数。 idx_tup_read numeric 该索引上扫描返回的索引项数。 idx_tup_fetch numeric 使用该索引的简单索引扫描在原表中抓取的活跃行数。 last_updated timestamp with time zone 视图中该索引监控数据最后一次更新的时间。 父主题: Object
  • 示例 --创建用户组,与CREATE ROLE效果一样。 gaussdb=# CREATE GROUP test_group WITH PASSWORD "********"; --使用CREATE ROLE创建角色,默认不能登录数据库。 --可使用ALTER ROLE role_name WITH LOG IN语句让用户可以登录数据库。 gaussdb=# CREATE ROLE test_role WITH PASSWORD "********"; --使用CREATE USER创建用户,自动创建同名模式,有登录的权限。 gaussdb=# CREATE USER test_user WITH PASSWORD "********"; --查看用户信息。 gaussdb=# \du test* List of roles Role name | Attributes | Member of ------------+--------------+----------- test_group | Cannot login | {} test_role | Cannot login | {} test_user | | {} --查询CREATE USER命令自动创建的模式。 gaussdb=# \dn test* List of schemas Name | Owner -----------+----------- test_user | test_user (1 row) --删除。 gaussdb=# DROP ROLE test_role; gaussdb=# DROP GROUP test_group; gaussdb=# DROP USER test_user;
  • 语法格式 1 2 CREATE GROUP group_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [ EXPIRED ] | DISABLE }; 其中可选项option子句语法为: 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 {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_group_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • GS_DB_PRIVILEGE GS_DB_PRIVILEGE系统表记录ANY权限的授予情况,每条记录对应一条授权信息。 表1 GS_DB_PRIVILEGE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 roleid oid 用户标识。 privilege_type text 用户拥有的ANY权限,取值参考表1。 admin_option boolean 是否具有privilege_type列记录的ANY权限的再授权权限。 t:表示具有。 f:表示不具有。 父主题: 用户和权限管理
  • GS_ALL_CONTROL_GROUP_INFO GS_ALL_CONTROL_GROUP_INFO视图显示数据库内所有控制组的信息。 表1 GS_ALL_CONTROL_GROUP_INFO字段 名称 类型 描述 name text 控制组的名称。 type text 控制组的类型。 GROUP_NONE:无分组。 GROUP_TOP:顶级分组。 GROUP_CLASS:该资源的类分组,不控制任何线程。 GROUP_BAKWD:后端线程控制组。 GROUP_DEFWD: 默认控制组,仅控制该级别的查询线程。 GROUP_TSWD:每个用户的分时控制组,控制最底层的查询线程。 gid bigint 控制组ID。 classgid bigint Workload所属Class的控制组ID。 class text Class控制组。 workload text Workload控制组。 shares bigint 控制组分配的CPU资源配额。 limits bigint 控制组分配的CPU资源限额。 wdlevel bigint Workload控制组层级。 cpucores text 控制组使用的CPU核的信息。 父主题: 其他系统视图
  • max_cn_temp_file_size 参数说明:指定SQL语句出错自动重试功能中CN端使用临时文件的最大值,设定为0表示不使用临时文件。 参数类型:整型 参数单位:kB 取值范围:0 ~ 10485760 默认值:5242880(即5GB) 设置方式:该参数属于SIGHUP类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。例如,设置为100,不带单位,表示100kB;设置为16MB,带单位,表示16MB。取值如果要带单位,必须为kB、MB、GB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • data_sync_retry 参数说明:控制fsync到磁盘失败后是否继续运行数据库。在某些操作系统的场景下,fsync失败后,即使重试阶段再次fsync失败也不会报错,从而导致数据丢失。 参数类型:布尔型 参数单位:无 取值范围: on:表示fsync同步到磁盘失败后采取重试机制,继续运行数据库。 off:表示fsync同步到磁盘失败后直接报panic,停止数据库。 默认值:off 设置方式:该参数属于POSTMASTER类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • remote_read_mode 参数说明:远程读功能开关。读取主机上的页面失败时,可以从备机上读取对应的页面。 参数类型:枚举类型 参数单位:无 取值范围:off、non_authentication、authentication off:表示关闭远程读功能。 non_authentication:表示开启远程读功能,但不进行证书认证。 authentication:表示开启远程读功能,但要进行证书认证。 默认值:authentication 设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • omit_encoding_error 参数说明:若打开该开关,数据库的客户端字符集编码为UTF-8时,出现的字符编码转换错误将打印在日志中,有转换错误的被转换字符会被忽略,以"?"代替。 参数类型:布尔型 参数单位:无 取值范围: on:表示有转换错误的字符将被忽略,以"?"代替,打印错误信息到日志中。 off:表示有转换错误的字符不能被转换,打印错误信息到终端。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 该参数通过执行gs_guc reload修改时,如果当前节点上某个session的连接不是来自于客户端,而是来自于该节点所属集群上的其他节点,那么执行gs_guc reload后该参数在该session上不会立即生效,需要与连接节点断开连接后重新连接才会生效。
  • cn_send_buffer_size 参数说明:指定CN端数据发送数据缓存区的大小。 参数类型:整型 参数单位:kB 取值范围:8 ~ 128 默认值:8 设置方式:该参数属于POSTMASTER类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。例如,设置为100,不带单位,表示100kB;设置为128kB,带单位,表示128kB。取值如果要带单位,必须为kB。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • exit_on_error 参数说明:若打开该开关,ERROR级别报错会升级为PANIC报错,从而可以产生core堆栈。主要用于问题定位和业务测试。 参数类型:布尔型 参数单位:无 取值范围: on:表示ERROR级别报错会升级为PANIC报错。 off:表示不会对ERROR级别报错进行升级。 默认值:off 设置方式:该参数属于USERSET类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • restart_after_crash 参数说明:若打开该开关,后端线程崩溃时, GaussDB 将自动重新初始化此后端线程。 参数类型:布尔型 参数单位:无 取值范围: on:表示GaussDB能够在后端线程崩溃时自动重新初始化此后端线程。在某些情况(比如当采用管理工具(例如xCAT)管理GaussDB时),能够最大限度地提高数据库的可用性。 off:表示能够使得管理工具在后端线程崩溃时获取控制权并采取适当的措施进行处理。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考17.2-表 GUC参数分类中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • GS_MASKING_POLICY_ACTIONS GS_MASKING_POLICY_ACTIONS系统表记录动态数据脱敏策略中相应的脱敏策略包含的脱敏行为,一个脱敏策略对应着该表的一行或多行记录。需要有系统管理员或安全策略管理员权限才可以访问此系统表。 表1 GS_MASKING_POLICY_ACTIONS表字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 actiontype name 脱敏函数,标识脱敏策略使用的脱敏函数。 actparams name 向脱敏函数中传递的参数信息。 actlabelname name 被脱敏的label名称。 policyoid oid 该条记录所属的脱敏策略的oid,对应GS_MASKING_POLICY中的oid。 actmodifydate timestamp without time zone 该条记录创建或修改的最新时间戳。 父主题: 动态脱敏
  • FORALL批量查询语句 语法图 forall::=语句图图9所示。 图9 forall::= label declaration ::语句如图10所示。 图10 label declaration ::= 变量index会自动定义为integer类型并且只在此循环里存在。index的取值介于low_bound和upper_bound之间。 使用FORALL + BULK COLLECT INTO时,INTO的变量仅返回单条DML语句执行结果。 示例 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 gaussdb=# CREATE TABLE TEST_t1 ( title NUMBER(6), did VARCHAR2(20), data_period VARCHAR2(25), kind VARCHAR2(25), interval VARCHAR2(20), time DATE, isModified VARCHAR2(10) ) DISTRIBUTE BY hash(did); CREATE TABLE gaussdb=# INSERT INTO TEST_t1 VALUES( 8, 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK' ); INSERT 0 1 gaussdb=# CREATE OR REPLACE PROCEDURE proc_forall() AS BEGIN FORALL i IN 100..120 update TEST_t1 set title = title + 100*i; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_forall(); proc_forall ------------- (1 row) --查询存储过程调用结果 gaussdb=# SELECT * FROM TEST_t1; title | did | data_period | kind | interval | time | ismodified --------+--------+-------------+----------+--------------+---------------------+------------ 231008 | Donald | OConnell | DOCONNEL | 650.507.9833 | 1999-06-21 00:00:00 | SH_CLERK (1 row) --删除存储过程和表 gaussdb=# DROP PROCEDURE proc_forall; DROP PROCEDURE gaussdb=# DROP TABLE TEST_t1; DROP TABLE
  • FOR_LOOP(integer变量)语句 语法图 for_loop::=语句如图5所示。 图5 for_loop::= label declaration ::=语句如图6所示。 图6 label declaration ::= 变量name会自动定义为integer类型并且只在此循环里存在。变量name介于lower_bound和upper_bound之间。 当使用REVERSE关键字时,lower_bound必须大于等于upper_bound,否则循环体不会被执行。 示例 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 --从0到5进行循环 gaussdb=# CREATE OR REPLACE PROCEDURE proc_for_loop() AS BEGIN FOR I IN 0..5 LOOP DBE_OUTPUT.PRINT_LINE('It is '||to_char(I) || ' time;') ; END LOOP; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_for_loop(); It is 0 time; It is 1 time; It is 2 time; It is 3 time; It is 4 time; It is 5 time; proc_for_loop --------------- (1 row) --删除存储过程 gaussdb=# DROP PROCEDURE proc_for_loop; DROP PROCEDURE
  • FOR_LOOP查询语句 语法图 for_loop_query::=语句如图7所示。 图7 for_loop_query::= label declaration ::=语句如如图8所示。 图8 label declaration ::= 变量target会自动定义,类型和query的查询结果的类型一致,并且只在此循环中有效。target的取值就是query的查询结果。 query可以使用EXECUTE增加动态查询,通过USING向查询插入参数。详见示例中的动态查询相关内容。 示例 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 --循环输出查询结果。 gaussdb=# CREATE OR REPLACE PROCEDURE proc_for_loop_query() AS record VARCHAR2(50); BEGIN FOR record IN SELECT spcname FROM pg_tablespace LOOP dbe_output.print_line(record); END LOOP; END; / CREATE PROCEDURE --调用存储过程 gaussdb=# CALL proc_for_loop_query(); pg_default pg_global proc_for_loop_query --------------------- (1 row) --删除存储过程 gaussdb=# DROP PROCEDURE proc_for_loop_query; DROP PROCEDURE --动态查询 gaussdb=# CREATE TABLE t1(id int); gaussdb=# INSERT INTO t1 VALUES(1); gaussdb=# DECLARE a int := 1; item t1%rowtype; BEGIN FOR item IN EXECUTE 'SELECT * FROM t1 WHERE id = :1' USING a LOOP RAISE INFO '%', item; END LOOP; END; / INFO: (1) ANONYMOUS BLOCK EXECUTE gaussdb=# DROP TABLE t1;
  • GLOBAL_STATEMENT_COMPLEX_HISTORY_TABLE 显示各个节点执行作业结束后的负载管理记录。此数据是从内核中转储到系统表中的数据。当设置GUC参数enable_resource_record为on时,系统会定时(周期为3分钟)将GLOBAL_STATEMENT_COMPLEX_HISTORY中的记录导入此系统表,开启此功能会占用系统存储空间并对性能有一定影响,不建议用户使用。 具体的字段请参考GLOBAL_STATEMENT_COMPLEX_HISTORY中的字段。 父主题: Query
  • 示例 清理表数据 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 --创建表reason。 gaussdb=# CREATE TABLE reason (r_reason_sk int,r_reason_id varchar(16),r_reason_desc varchar(100)); --向表中插入多条记录。 gaussdb=# INSERT INTO reason values(1,'AAAAAAAABAAAAAAA','reason 1'), (5,'AAAAAAAABAAAAAAA','reason 2'), (15,'AAAAAAAABAAAAAAA','reason 3'), (25,'AAAAAAAABAAAAAAA','reason 4'), (35,'AAAAAAAABAAAAAAA','reason 5'), (45,'AAAAAAAACAAAAAAA','reason 6'); --查看表的信息,大小约为16kB gaussdb=# \d+ List of relations Schema | Name | Type | Owner | Size | Storage | Description --------+--------+-------+-------+-------+----------------------------------+------------- public | reason | table | omm | 16 kB | {orientation=row,compression=no} | (1 row) --使用DELETE语句不带WHERE条件,清空表的数据,并查看表的大小。 gaussdb=# DELETE FROM reason; gaussdb=# \d+ List of relations Schema | Name | Type | Owner | Size | Storage | Description --------+--------+-------+-------+-------+----------------------------------+------------- public | reason | table | omm | 16 kB | {orientation=row,compression=no} | (1 row) --使用TRUNCATE清空表reason,并查看表的大小 gaussdb=# TRUNCATE TABLE reason; gaussdb=# \d+ List of relations Schema | Name | Type | Owner | Size | Storage | Description --------+--------+-------+-------+---------+----------------------------------+------------- public | reason | table | omm | 0 bytes | {orientation=row,compression=no} | (1 row) --删除表。 gaussdb=# DROP TABLE reason; 清理分区表数据。 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 --创建分区表。 gaussdb=# CREATE TABLE reason_p( r_reason_sk integer, r_reason_id character(16), r_reason_desc character(100) )PARTITION BY RANGE (r_reason_sk)( partition p_05_before values less than (05), partition p_15 values less than (15), partition p_25 values less than (25), partition p_35 values less than (35), partition p_45_after values less than (MAXVALUE) ); --插入数据。 gaussdb=# INSERT INTO reason_p values(1,'AAAAAAAABAAAAAAA','reason 1'), (5,'AAAAAAAABAAAAAAA','reason 2'), (15,'AAAAAAAABAAAAAAA','reason 3'), (25,'AAAAAAAABAAAAAAA','reason 4'), (35,'AAAAAAAABAAAAAAA','reason 5'), (45,'AAAAAAAACAAAAAAA','reason 6'); --清空分区p_05_before。 gaussdb=# ALTER TABLE reason_p TRUNCATE PARTITION p_05_before UPDATE GLOBAL INDEX; --清空分区表。 gaussdb=# TRUNCATE TABLE reason_p; --删除表reason_p。 gaussdb=# DROP TABLE reason_p;
  • 语法格式 清理表数据。 1 2 TRUNCATE [ TABLE ] [ ONLY ] {table_name [ * ]} [, ... ] [ CONTINUE IDENTITY ] [ CASCADE | RESTRICT ] [ PURGE ]; 清理表分区的数据。 1 2 3 4 5 ALTER TABLE [ IF EXISTS ] { [ ONLY ] table_name | table_name * | ONLY ( table_name ) } TRUNCATE PARTITION { partition_name | FOR ( partition_value [, ...] ) } [ UPDATE GLOBAL INDEX ];
  • 注意事项 TRUNCATE TABLE在功能上与不带WHERE子句DELETE语句相同:二者均删除表中的全部行。 TRUNCATE TABLE比DELETE速度快且使用系统和事务日志资源少: DELETE语句每次删除一行,并在事务日志中为所删除每行记录一项。 TRUNCATE TABLE通过释放存储表数据所用数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNCATE、DELETE和DROP三者的差异如下: TRUNCATE TABLE:删除内容,释放空间,但不删除定义。 DELETE TABLE:删除内容,不删除定义,不释放空间。 DROP TABLE:删除内容和定义,释放空间。
  • 参数说明 ONLY 如果声明ONLY,只有指定的表会被清空。如果没有声明ONLY,这个表以及其所有子表(若有)会被清空。 table_name 目标表的名称(可以有模式修饰)。 取值范围:已存在的表名。 CONTINUE IDENTITY 不改变序列的值。这是缺省值。 CASCADE | RESTRICT CASCADE:级联清空所有由于CASCADE而被添加到组中的表。 RESTRICT(缺省值):如果其他表在该表上有外键(分布式场景暂不支持)引用则拒绝清空。 PURGE 默认将表数据放入回收站中,PURGE直接清理。 partition_name 目标分区表的分区名。 取值范围:已存在的分区名。 partition_value 指定的分区键值。 通过PARTITION FOR子句指定的这一组值,可以唯一确定一个分区。 取值范围:需要进行删除数据分区的分区键的取值范围。 使用PARTITION FOR子句时,partition_value所在的整个分区会被清空。
  • GS_GLOBAL_ARCHIVE_STATUS GS_GLOBAL_ARCHIVE_STATUS视图描述CN和所有分片的归档进度,获取分片名称(node_name)、归档位置(restart_lsn)、实际进行归档的主/备机名称(archive_node)和当前日志位置(current_xlog_location)。查询此视图需要数据库开启归档功能,并从CN节点进行查询,需要monitor admin和sysadmin权限。具体字段信息如表1所示。 表1 GS_GLOBAL_ARCHIVE_STATUS字段 名称 类型 描述 node_name text 分片名称。 restart_lsn text 归档位置。 archive_node text 实际进行归档的主/备机名称。 current_xlog_location text 当前日志位置。 父主题: 其他系统视图
  • 语法格式 1 CREATE ROLE role_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' [EXPIRED] | DISABLE }; 其中角色信息设置子句option语法为: 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 {SYSADMIN | NOSYSADMIN} | {MONADMIN | NOMONADMIN} | {OPRADMIN | NOOPRADMIN} | {POLADMIN | NOPOLADMIN} | {AUDITADMIN | NOAUDITADMIN} | {CREATEDB | NOCREATEDB} | {USEFT | NOUSEFT} | {CREATEROLE | NOCREATEROLE} | {INHERIT | NOINHERIT} | {LOGIN | NOLOGIN} | {REPLICATION | NOREPLICATION} | {PERSISTENCE | NOPERSISTENCE} | CONNECTION LIMIT connlimit | VALID BEGIN 'timestamp' | VALID UNTIL 'timestamp' | RESOURCE POOL 'respool' | USER GROUP 'groupuser' | PERM SPACE 'spacelimit' | TEMP SPACE 'tmpspacelimit' | SPILL SPACE 'spillspacelimit' | NODE GROUP logic_cluster_name | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid | DEFAULT TABLESPACE tablespace_name | PROFILE DEFAULT | PROFILE profile_name | PGUSER
  • 参数说明 OR REPLACE 可选。如果视图已存在,则重新定义。 TEMP | TEMPORARY 可选。创建一个临时视图。在当前会话结束时会自动删除掉视图。如果视图引用的任何表是临时表,视图将被创建为临时视图(不管SQL中有没有指定TEMP|TEMPORARY)。 view_name 要创建的视图名称。可以用模式修饰。 取值范围:字符串,符合标识符命名规范。 column_name 可选的名称列表,用作视图的字段名。如果没有给出,字段名取自查询中的字段名。 取值范围:字符串,符合标识符命名规范。 view_option_name [= view_option_value] 该子句为视图指定一个可选的参数。 目前view_option_name支持的参数仅有security_barrier和check_option。 security_barrier:当VIEW视图提供行级安全时,应使用该参数。取值范围:Boolean类型(true、false)。 check_option:控制更新视图的行为。取值范围:CASCADED、LOCAL。 query 为视图提供行和列的SELECT或VALUES语句。 若query包含指定分区表分区的子句,创建视图会将所指定分区的OID硬编码到系统表中。如果使用导致指定分区的OID发生变更的分区DDL语法,如DROP/SPLIT/MERGE该分区,则会导致视图不可用。需要重新创建视图。
  • 功能描述 创建一个视图。视图与基本表不同,是一个虚拟的表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。 将经常使用的数据定义为视图,可以将复杂的查询SQL语句进行封装。简化操作。 安全性,用户只能查询视图定义的数据。隐藏基表字段,保护数据库的数据结构。 简化用户权限的管理,只授予用户使用视图的权限。
  • 语法格式 1 2 3 4 CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW view_name [ ( column_name [, ...] ) ] [ WITH ( {view_option_name [= view_option_value]} [, ... ] ) ] AS query [ WITH [ CASCADED | LOCAL ] CHECK OPTION | WITH READ ONLY ]; 创建视图时使用WITH(security_barrier)可以创建一个相对安全的视图,避免攻击者利用低成本函数的RAISE语句打印出基表数据。 当视图创建后,不允许使用REPLACE修改本视图当中的列名,也不允许删除列。
  • GS_STATIC_THREADPOOL_CTRL_STATUS GS_STATIC_THREADPOOL_CTRL_STATUS返回当前实例线程池相关静态线程的统计信息。线程池开启状态下,CN线程池支持该视图查询。连接DN查询返回空行;线程池关闭下返回空行;参数static_thread_pool_num设置为0或小于线程池group数时静态线程池默认值为0。查询该视图需要PUBLIC权限。 表1 GS_STATIC_THREADPOOL_CTRL_STATUS字段 名称 类型 描述 node_name text 实例名。 group_id integer 线程池group组id。 worker_info text 描述当前group组线程池运行中的动态的统计信息。包括如下信息: default、default_s:线程数量。动态线程池默认值,静态线程池默认值。 expect、expect_s:线程数量。动态线程池预期值,静态线程池预期值。 actual:实际运行的线程数量,包括动态池线程和静态池线程。 static threads limit:当前group组配置的静态池线程数。 has static threads:当前group组是否创建静态池。默认为0,表示没有创建。 idle static threads:空闲的静态池线程个数。 wait session num:等待的会话数。 父主题: 通信
  • 安全策略管理员 安全策略管理员是指具有POLADMIN属性的账户,具有创建资源标签、脱敏策略和统一审计策略的权限。 要创建新的安全策略管理员,请以系统管理员用户身份连接数据库,并使用带POLADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 gaussdb=# CREATE USER poladmin WITH POLADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe POLADMIN; ALTER USER时,要求用户已存在。
  • 系统管理员 系统管理员是指具有SYSADMIN属性的账户,默认安装情况下具有与对象所有者相同的权限,但不包括dbe_perf模式的对象权限。 要创建新的系统管理员,请以初始用户或者系统管理员用户身份连接数据库,并使用带SYSADMIN选项的CREATE USER语句或ALTER USER语句进行设置。 1 gaussdb=# CREATE USER sysadmin WITH SYSADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe SYSADMIN; ALTER USER时,要求用户已存在。
  • 审计管理员 审计管理员是指具有AUDITADMIN属性的账户,具有查看和删除审计日志的权限。 要创建新的审计管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库。三权分立打开时,只能以初始用户身份连接数据库,并使用带AUDITADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 gaussdb=# CREATE USER auditadmin WITH AUDITADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe AUDITADMIN; ALTER USER时,要求用户已存在。
共100000条
提示

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