华为云用户手册

  • 创建、修改和删除角色 非三权分立时,只有系统管理员和具有CREATEROLE属性的用户才能创建、修改或删除角色。三权分立下,只有初始用户和具有CREATEROLE属性的用户才能创建、修改或删除角色。 创建角色,请参见CREATE ROLE。 在现有角色中添加或删除用户,请参见ALTER ROLE。 删除角色,请参见DROP ROLE。DROP ROLE只会删除角色,并不会删除角色中的成员用户账户。
  • 内置角色 GaussDB 提供了一组默认角色,以gs_role_开头命名。它们提供对特定的、通常需要高权限的操作的访问,可以将这些角色授权给数据库内的其他用户或角色,让这些用户能够使用特定的功能。在授予这些角色时应当非常小心,以确保它们被用在需要的地方。表1描述了内置角色允许的权限范围。 表1 内置角色权限描述 角色 权限描述 gs_role_signal_backend 具有调用函数pg_cancel_backend、pg_terminate_backend和pg_terminate_session来取消或终止其他会话的权限,或调用函数pg_terminate_active_session_socket来关闭活跃会话和客户端的socket连接,但不能操作属于初始用户和PERSISTENCE用户的会话。 gs_role_tablespace 具有创建表空间(tablespace)的权限。 gs_role_replication 具有调用逻辑复制相关函数的权限,例如kill_snapshot、pg_create_logical_replication_slot、pg_create_physical_replication_slot、pg_drop_replication_slot、pg_replication_slot_advance、pg_create_physical_replication_slot_extern、pg_logical_slot_get_changes、pg_logical_slot_peek_changes、pg_logical_slot_get_binary_changes、pg_logical_slot_peek_binary_changes。 gs_role_account_lock 具有加解锁用户的权限,但不能加解锁初始用户和PERSISTENCE用户。 gs_role_pldebugger 具有执行dbe_pldebugger下调试函数的权限。 gs_role_public_dblink_drop 具有执行删除public database link对象的权限。 gs_role_public_dblink_alter 具有执行修改public database link对象的权限。 gs_role_seclabel 具有创建、删除和应用安全标签的权限。 gs_role_public_synonym_create 具有创建public同义词的权限。 gs_role_public_synonym_drop 具有删除public同义词的权限。 gs_role_pdb_create 具有创建pluggable database(PDB)的权限。 关于内置角色的管理有如下约束: 以gs_role_开头的角色名作为数据库的内置角色保留名,禁止新建以“gs_role_”开头的用户/角色/模式,也禁止将已有的用户/角色/模式重命名为以“gs_role_”开头。 禁止对内置角色进行ALTER和DROP操作。 内置角色默认没有 LOG IN权限,不设预置密码。 gsql元命令\du和\dg不显示内置角色的相关信息,但若显示指定了pattern为特定内置角色则会显示。 三权分立关闭时,初始用户、具有SYSADMIN权限的用户和具有内置角色ADMIN OPTION权限的用户有权对内置角色执行GRANT/REVOKE管理。三权分立打开时,初始用户和具有内置角色ADMIN OPTION权限的用户有权对内置角色执行GRANT/REVOKE管理。例如: 1 2 GRANT gs_role_signal_backend TO user1; REVOKE gs_role_signal_backend FROM user1;
  • 条件表达式 在执行SQL语句时,可通过条件表达式筛选出符合条件的数据。 条件表达式主要有以下几种: CASE CASE表达式是条件表达式,类似于其他编程语言中的CASE语句。 CASE表达式的语法图如图1所示。 图1 case::= CASE子句可以用于合法的表达式中。condition是一个返回BOOLEAN数据类型的表达式: 如果结果为真,CASE表达式的结果就是符合该条件所对应的result。 如果结果为假,则以相同方式处理随后的WHEN或ELSE子句。 如果各WHEN condition都不为真,表达式的结果就是在ELSE子句执行的result。如果省略了ELSE子句且没有匹配的条件,结果为NULL。 支持对XML类型数据操作。 GUC参数enable_case_intervaltonumeric设置为true时,支持将INTERVAL转换为NUMERIC而不报错。 示例: 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 49 50 51 52 53 gaussdb=# CREATE TABLE case_when_t1(CW_COL1 INT); gaussdb=# INSERT INTO case_when_t1 VALUES (1), (2), (3); gaussdb=# SELECT * FROM case_when_t1; cw_col1 --------- 1 2 3 (3 rows) gaussdb=# SELECT CW_COL1, CASE WHEN CW_COL1=1 THEN 'one' WHEN CW_COL1=2 THEN 'two' ELSE 'other' END FROM case_when_t1 ORDER BY 1; cw_col1 | case ---------+------- 1 | one 2 | two 3 | other (3 rows) gaussdb=# DROP TABLE case_when_t1; -- GUC参数默认为false,此时报错。 gaussdb=# SHOW enable_case_intervaltonumeric; enable_case_intervaltonumeric ------------------------------- off (1 row) gaussdb=# SELECT CASE gaussdb-# WHEN 1=1 THEN gaussdb-# to_date('20240118','yyyymmdd')-to_date('20240116','yyyymmdd') gaussdb-# ELSE gaussdb-# 1 gaussdb-# END; ERROR: CASE types integer and interval cannot be matched LINE 3: to_date('20240118','yyyymmdd')-to_date('20240116','y... ^ CONTEXT: referenced column: case -- 打开GUC参数,能正确返回结果。 gaussdb=# SET enable_case_intervaltonumeric=true; SET gaussdb=# SELECT CASE gaussdb-# WHEN 1=1 THEN gaussdb-# to_date('20240118','yyyymmdd')-to_date('20240116','yyyymmdd') gaussdb-# ELSE gaussdb-# 1 gaussdb-# END; case ------ 2 (1 row) DECODE DECODE的语法图如图2所示。 图2 decode::= 将表达式base_expr与后面的每个compare(n) 进行比较,如果匹配返回相应的value(n)。如果没有发生匹配,则返回default。 支持对XML类型数据操作。 示例请参见条件表达式函数。 1 2 3 4 5 gaussdb=# SELECT DECODE('A','A',1,'B',2,0); case ------ 1 (1 row) COALESCE COALESCE的语法图如图3所示。 图3 coalesce::= COALESCE返回它的第一个非NULL的参数值。如果参数都为NULL,则返回NULL。它常用于在显示数据时用缺省值替换NULL。和CASE表达式一样,COALESCE只计算用来判断结果的参数,即在第一个非空参数右边的参数不会被计算。 支持对XML类型数据操作。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 gaussdb=# CREATE TABLE c_tabl(description varchar(10), short_description varchar(10), last_value varchar(10)) ; gaussdb=# INSERT INTO c_tabl VALUES('abc', 'efg', '123'); gaussdb=# INSERT INTO c_tabl VALUES(NULL, 'efg', '123'); gaussdb=# INSERT INTO c_tabl VALUES(NULL, NULL, '123'); gaussdb=# SELECT description, short_description, last_value, COALESCE(description, short_description, last_value) FROM c_tabl ORDER BY 1, 2, 3, 4; description | short_description | last_value | coalesce -------------+-------------------+------------+---------- abc | efg | 123 | abc | efg | 123 | efg | | 123 | 123 (3 rows) gaussdb=# DROP TABLE c_tabl; 如果description不为NULL,则返回description的值,否则计算下一个参数short_description;如果short_description不为NULL,则返回short_description的值,否则计算下一个参数last_value;如果last_value不为NULL,则返回last_value的值,否则返回(none)。 1 2 3 4 5 gaussdb=# SELECT COALESCE(NULL,'Hello World'); coalesce --------------- Hello World (1 row) NULLIF NULLIF的语法图如图4所示。 图4 nullif::= 只有当value1和value2相等时,NULLIF才返回NULL。否则它返回value1。支持对XML类型数据操作。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 gaussdb=# CREATE TABLE null_if_t1 ( NI_VALUE1 VARCHAR(10), NI_VALUE2 VARCHAR(10) ); gaussdb=# INSERT INTO null_if_t1 VALUES('abc', 'abc'); gaussdb=# INSERT INTO null_if_t1 VALUES('abc', 'efg'); gaussdb=# SELECT NI_VALUE1, NI_VALUE2, NULLIF(NI_VALUE1, NI_VALUE2) FROM null_if_t1 ORDER BY 1, 2, 3; ni_value1 | ni_value2 | nullif -----------+-----------+-------- abc | abc | abc | efg | abc (2 rows) gaussdb=# DROP TABLE null_if_t1; 如果value1等于value2则返回NULL,否则返回value1。 1 2 3 4 5 gaussdb=# SELECT NULLIF('Hello','Hello World'); nullif -------- Hello (1 row) GREATEST(最大值),LEAST(最小值) GREATEST的语法图如图5所示。 图5 greatest::= 从一个任意数字表达式的列表里选取最大的数值。支持对XML类型数据操作。 1 2 3 4 5 gaussdb=# SELECT greatest(9000,155555,2.01); greatest ---------- 155555 (1 row) LEAST的语法图如图6所示。 图6 least::= 从一个任意数字表达式的列表里选取最小的数值。 以上的数字表达式必须都可以转换成一个普通的数据类型,该数据类型将是结果类型。 列表中的NULL值将被忽略。只有所有表达式的结果都是NULL的时候,结果才是NULL。 支持对XML类型数据操作。 1 2 3 4 5 gaussdb=# SELECT least(9000,2); least ------- 2 (1 row) 示例请参见条件表达式函数。 NVL NVL的语法图如图7所示。 图7 nvl::= 如果value1为NULL,则返回value2,如果value1非NULL,则返回value1。支持对XML类型数据操作。 示例: 1 2 3 4 5 gaussdb=# SELECT nvl(null,1); nvl ----- 1 (1 row) 1 2 3 4 5 gaussdb=# SELECT nvl('Hello World',1); nvl --------------- Hello World (1 row) 父主题: 表达式
  • 字符集与字符序 字符集(Character Set)是字符的编码规则,字符序(Collation)是字符的排序规则,本章主要对GaussDB的B模式(即sql_compatibility = 'B')下的字符集、字符序进行介绍,以下介绍的字符集、字符序规则和语法仅在B模式下支持。 GaussDB目前所支持的字符集可以参考CREATE DATABASE章节中ENCODING部分介绍,所支持的字符序可以通过查询系统表PG_COLLATION。 其中,部分字符集在B模式下存在默认字符序,可以参考表1。 字符集和字符序存在以下说明: 每一个字符集都有一个或多个字符序,只有一个字符序为字符集的默认字符序。 每一个字符序仅有一个相关联的字符集。 相同数据使用不同的字符序排序结果可能会不同。 在GaussDB中,utf8mb4与utf8为同一字符集。 在GaussDB的B模式(即sql_compatibility = 'B')下,binary字符集与SQL_ASCII字符集为同一字符集。 建议表字段和server_encoding选择相同字符集,避免转码带来的性能损耗。 GaussDB数据库 支持以下功能: 支持多种字符集存储字符串。 支持使用字符序比较字符串。 支持数据库级、模式级、表级、字段级字符集和字符序。 暂不支持在同服务器、同数据库、同一个表、同一条SQL语句中混合使用不同字符集和字符序的字符串。 客户端连接的字符集和字符序 数据库级字符集和字符序 模式级字符集和字符序 表级字符集和字符序 列级字符集字符序 字符类型表达式的字符集和字符序 字符集和字符序合并规则 父主题: SQL参考
  • enable_recyclebin 参数说明:用来控制回收站的实时打开和关闭。 参数类型:布尔型 参数单位:无 取值范围: on:表示实时打开回收站。 off:表示实时关闭回收站。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 设置建议:需要使用闪回表功能时,将enable_recyclebin设置为on。 设置不当的风险与影响:关闭时无法使用闪回功能。
  • recyclebin_retention_time 参数说明:设置回收站对象保留时间,超过该时间的回收站对象将被自动清理。 参数类型:整型 参数单位:s(秒) 取值范围:1 ~ 2147483647 默认值:900(即15min) 设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。例如,不带单位取值900,表示recyclebin_retention_time为900s;带单位取值15min,表示recyclebin_retention_time为15min。取值如果要带单位,必须为s、min、h、d。 设置建议:根据用户需求对回收站对象保留时间进行设置。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • DBE_PLDEBUGGER.info_locals debug端调试过程中,调用info_locals,打印当前存储过程内变量。该函数入参frameno表示查询遍历的栈层数,支持无入参调用,缺省为查看最上层栈变量,如表1所示。 表1 info_locals入参和返回值列表 名称 类型 描述 frameno IN integer (可选) 指定的栈层数,缺省为最顶层。 varname OUT text 变量名。 vartype OUT text 变量类型。 value OUT text 变量值。 package_name OUT text 变量对应的package名,非package时为空。 isconst OUT boolean 是否为常量。 父主题: DBE_PLDEBUGGER Schema
  • GLOBAL_STATIO_USER_INDEXES GLOBAL_STATIO_USER_INDEXES视图显示各节点的命名空间中所有用户关系表索引的I/O状态信息,如表1所示。 表1 GLOBAL_STATIO_USER_INDEXES字段 名称 类型 描述 node_name name 节点名称。 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read numeric 从索引中读取的磁盘块数。 idx_blks_hit numeric 索引命中缓存数。 父主题: Cache/IO
  • 参数 表1 SQLConnect参数 关键字 参数说明 ConnectionHandle 连接句柄,通过SQLAllocHandle获得。 ServerName 要连接数据源的名称。 NameLength1 ServerName的长度。 UserName 数据源中数据库用户名。 NameLength2 UserName的长度。 Authentication 数据源中数据库用户密码。 NameLength3 Authentication的长度。
  • 原型 1 2 3 4 5 6 7 SQLRETURN SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3);
  • SUMMARY_STAT_ALL_INDEXES 显示数据库各节点的每个索引的访问信息的汇总求和结果(其中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
  • GaussDB导出之后自行解析数据文件的场景 该场景下一般不希望导出的TEXT文件中有GaussDB独有的转义行为,此时需要按如下方式进行处理: 首先确认字段数据中是否存在行结束符或分隔符; 如果包含,需要使用EOL或delimiter参数改用其他字符。需要确保指定的新EOL或delimiter不会在字段数据中存在,建议从不可见字符(0x01 ~ 0x1F)中选取; 可以通过NULL选项指定对数据中的NULL值在导出时的表示方法。 最后添加without escaping参数,禁止转义输出。 建议导出命令: 1 2 3 copy {data_source} to '/path/export.txt' without escaping eol e'\x1E' delimiter e'\x1F' null '\N' encoding '{server_encoding}'; --data_source 可以是一个表名称,也可以是一个select语句 --server_encoding 可以通过show server_encoding获得
  • GaussDB导出并导入到GaussDB场景 建议导出命令: 1 2 3 copy {data_source} to '/path/export.txt' eol e'\n' delimiter e'\t' encoding '{server_encoding}'; --data_source 可以是一个表名称,也可以是一个select语句 --server_encoding 可以通过show server_encoding获得 对应导入命令: 1 2 3 copy {data_destination} from '/path/export.txt' eol e'\n' delimiter e'\t' encoding '{file_encoding}'; --data_destination 只能是一个表名称 --file_encoding 为该二进制文件导出时指定的编码格式
  • support_binary_copy_version 参数说明:使用COPY TO的BINARY模式导出数据时,是否包含当前数据库服务端的编码信息。 参数类型:字符串 参数单位:无 取值范围:""、"header_encoding"。 表1 兼容性配置项 兼容性配置项 兼容性行为控制 header_encoding 使用COPY TO的BINARY模式导出数据时,二进制文件头中包含当前数据库服务端的编码信息。 空字符串 做前向兼容处理时配置,以原二进制格式进行导出。 默认值:"header_encoding" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:无特殊情况时建议配置为默认取值,仅做前向兼容时需另行配置为空。 设置不当的风险与影响:设置为空字符串时,导出结果中不包含服务端编码信息,在需要编码信息的场景下,需要用户自行查询并记录。
  • a_format_enable_copy_empty_lobs 参数说明:A兼容模式下,执行COPY FROM批量插入时,是否允许通过空字符串输入向BLOB及CLOB类型中插入空字符串。 参数类型:布尔型 参数单位:无 取值范围:on、off。 表4 兼容性配置项 兼容性配置项 兼容性行为控制 on A兼容模式下,允许通过空字符串输入向BLOB及CLOB类型中插入空字符串。 比如将1,"",3插入到表中,第二个字段的结果为空,但是无法通过WHERE col2 IS NULL;进行过滤,且字段的长度为0。 off A兼容模式下,允许通过空字符串输入向BLOB及CLOB类型中插入空字符串。空字符串会被转换为NULL进行存储。 比如将1,"",3插入到表中,第二个字段的结果为NULL,可以通过WHERE col2 IS NULL;进行过滤。 默认值:on 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:建议配置为默认值,如果需要前向兼容再设置为off。 关于空字符串输入与空值输入: 在COPY的 CS V格式下,1,,3表示空值输入,1,"",3表示空字符串输入。参数开启时,前者的第二个字段会被插入为NULL,后者的第二个字段会被插入为空字符串;参数关闭时,前者和后者的第二个字段都会被插入为NULL。 对于新安装部署的数据库,参数默认取值为on;对于升级更新后的数据库,为了保证数据库的前向兼容性,参数默认取值为off。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • copy_special_character_version 参数说明:控制使用COPY导入导出数据时对非法编码的字符处理的相关表现。 参数类型:字符串 参数单位:无 取值范围:""、"no_error"、"per_byte"。 表2 兼容性配置项 兼容性配置项 兼容性行为控制 "no_error" 使用COPY导入数据文件时,当文件编码与服务端编码相同时,对数据文件中不满足编码信息的数据进行容错处理,不报错,并直接按照原编码插入表中。 "per_byte" 使用COPY导出文本格式的数据文件时,对文件编码为GBK或ZHS16GBK文件的处理方式。 设置per_byte后,在导出数据时一次导出一个字节数据,否则一次导出两个字节数据(GBK编码下,一个字符占两个字节)。 "" 参数默认配置,不影响任何功能使用,做前向兼容处理。即COPY存在非法编码时报错。 默认值:"" 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。使用gsql连接数据库,使用set方式设置时不区分大小写,使用gs_guc设置时仅能设置小写。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 为保证导入表中数据的合法性,COPY中需要对数据编码的合法性进行校验。当开启此参数后,会屏蔽非法校验操作并导致字段内出现非法字符,请酌情考虑开启此参数。 当前屏蔽数据编码校验仅在服务端编码与数据编码保持一致时生效,即copy_special_character_version值为"no_error"时,数据库服务端编码须与数据文件编码保持一致,否则会报错;未指定数据编码时,数据编码默认为客户端编码。 二进制模式下,copy_special_character_version值为"no_error"时,仅对TEXT、CHAR、VARCHAR、NVARCHAR2、CLOB类型的字段生效。 此参数仅在UTF-8、GB18030、GB18030_2022、ZHS16GBK、LATIN1字符集数据库下使用生效。 客户端编码与服务端编码都为GBK或ZHS16GBK时,当数据库内存在非法编码的数据时,如果不设置copy_special_character_version为"per_byte",导出的数据文件中可能会存在预期外的数据。 设置copy_special_character_version值为"no_error"的优先级高于COPY内COMPATIBLE_ILLEGAL_CHARS参数。
  • enable_log_copy_illegal_chars 参数说明:使用gs_loader导入数据及COPY导入导出数据时,遇到非法编码的字符时,是否向数据库运行日志中写入记录。多租场景下,该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围:on、off。 表3 兼容性配置项 兼容性配置项 兼容性行为控制 on 每出现一行包括非法编码字符的数据,都会向数据库运行日志中写入一条记录。 off 不向数据库运行日志中写入非法编码字符相关记录。 默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:无特殊情况时建议配置为默认值,仅对数据库性能及磁盘带宽有要求时设置为off。 设置不当的风险与影响:设置为off时将不会在运行日志中写入非法编码字符相关记录,影响可定位能力。
  • raise_errors_if_no_files 参数说明:设置导入时是否区分“导入文件记录数为空”和“导入文件不存在”。该参数开启时,“导入文件不存在”的时候,GaussDB将抛出“文件不存在”的错误。该参数可在PDB级别设置。 参数类型:布尔型 参数单位:无 取值范围: on:表示导入时区分“导入文件记录数为空”和“导入文件不存在”。 off:表示导入时不区分“导入文件记录数为空”和“导入文件不存在”。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。 raise_errors_if_no_files参数只在GDS工具使用场景有意义,在当前形态不生效。
  • safe_data_path 参数说明:设置初始用户以外的路径前缀限制,目前包括copy和高级包路径限制。 参数类型:字符串 参数单位:无 取值范围:合法目录路径,需要小于4096个字符。 默认值:"" 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:尽量控制safe_data_path路径覆盖有限范围,不要设置过大的路径范围。 设置不当的风险与影响:当enable_copy_server_files打开,并且safe_data_path路径范围设置过大时,可能导致恶意用户访问到服务器上的敏感文件。 如果safe_data_path目录下存在软链接文件,则会按软链接实际指向的文件路径进行处理,实际路径如果不在safe_data_path下会报错处理。 如果safe_data_path目录下存在硬链接文件,则可以正常使用。为安全起见,请谨慎使用硬链接文件,切勿在safe_data_path目录下创建指向目录以外的硬链接文件,并确保safe_data_path目录权限最小化。
  • enable_copy_server_files 参数说明:是否开启copy服务器端文件的权限。 参数类型:布尔型 参数单位:无 取值范围: on:表示开启copy服务端文件的权限,允许具有SYSADMIN权限的用户或继承了内置角色gs_role_copy_files权限的用户执行COPY FROM FILENAME或COPY TO FILENAME命令。该参数设置为on时,多租场景下,当前依旧不支持非初始用户在PDB内部执行COPY FROM FILENAME或COPY TO FILENAME命令。 off:表示不开启copy服务端文件的权限,只允许初始用户执行COPY FROM FILENAME或COPY TO FILENAME命令。 默认值:off 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:仅在需要copy服务端文件时打开,打开后建议同步设置safe_data_path。 设置不当的风险与影响:打开该参数后,如果safe_data_path设置路径范围过大,可能导致恶意用户访问到服务器上的敏感文件。
  • a_format_load_with_constraints_violation 参数说明:gs_loader导入数据支持约束冲突时,是否开启不回滚功能。该参数可在PDB级别设置。 参数类型:字符串 参数单位:无 取值范围: "s1":表示gs_loader支持约束冲突时,开启不回滚功能。 "":表示gs_loader支持约束冲突时,不开启不回滚功能。 "s2":表示copy、\copy以及gs_loader均支持跳过约束冲突的错误。 默认值:""。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
  • 系统表和系统视图概述 系统表是GaussDB存放结构元数据的地方,它是GaussDB数据库系统运行控制信息的来源,是数据库系统的核心组成部分。 系统视图提供了查询系统表和访问数据库内部状态的方法。 系统表和系统视图要么只对管理员可见,要么对所有用户可见。下面的系统表和视图有些标识了需要管理员权限,这些系统表和视图只有管理员可以查询。 用户可以删除后重新创建这些表、增加列、插入和更新数值,但是用户修改系统表会导致系统信息的不一致,从而导致系统控制紊乱。正常情况下不应该由用户手工修改系统表或系统视图,或者手工重命名系统表或系统视图所在的模式,而是由SQL语句关联的系统表操作自动维护系统表信息。 不建议用户修改系统表和系统视图的权限。 用户应该禁止对系统表进行增删改等操作,人为对系统表的修改或破坏可能会导致系统各种异常情况甚至数据库不可用。 系统表和系统视图中的字段类型详见数据类型章节介绍。 对于ADM类视图,由于访问到的对象是数据库下所有的该类型的对象,考虑对ADM类视图进行统一权限管理,默认只有系统管理员有权限访问该类型视图,部分ADM类的视图数据来自基表中公开、非敏感的字段;对于DB类视图,查询到的是数据库内当前用户有权限访问的对象,普通用户即可访问该类视图;对于MY类视图,查询到的是当前用户所属的对象,普通用户即可访问该类视图。 父主题: 系统表和系统视图
  • PG_TABLESPACE PG_TABLESPACE系统表存储表空间信息。 表1 PG_TABLESPACE字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 spcname name 表空间名称。 spcowner oid 表空间的所有者,通常是创建它的人。 spcacl aclitem[] 访问权限。具体请参见GRANT和REVOKE。 spcoptions text[] 表空间的选项。 spcmaxsize text 可使用的最大磁盘空间大小,单位Byte。 relative boolean 标识表空间指定的存储路径是否为相对路径。 t(true):表示是。 f(false):表示不是。 父主题: 其他系统表
  • 创建数据库用户 默认只有数据库安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户账号。 1 gaussdb=# CREATE USER joe WITH PASSWORD '********'; 当结果显示为如下信息,则表示创建成功。 1 CREATE ROLE 如上创建了一个用户名为joe,密码为********的用户。 执行如下命令设置joe用户为系统管理员。 gaussdb=# GRANT ALL PRIVILEGES TO joe; 使用GRANT命令进行相关权限设置,具体操作请参见GRANT。 关于数据库用户的更多信息请参见用户及权限。 父主题: 操作数据库
  • 原型 PGresult* PQexecPrepared(PGconn* conn, const char* stmtName, int nParams, const char* const* paramValues, const int* paramLengths, const int* paramFormats, int resultFormat);
  • 参数 表1 PQexecPrepared参数 关键字 参数说明 conn 连接句柄。 stmtName stmt名称,可以用""或者NULL来引用未命名语句,否则它必须是一个现有预备语句的名字。 nParams 参数个数。 paramValues 参数的实际值。 paramLengths 参数的实际数据长度。 须知: 下列情况中,参数长度强制使用paramLengths中对应的值: 参数格式为二进制。 参数格式为文本且连接参数force_no_truncation的值为1。 此时paramLengths不允许为空,并且参数长度的正确性须由调用者自行保证。 paramFormats 参数的格式(文本或二进制)。 resultFormat 结果的格式(文本或二进制)。
  • 背景信息 当用户需要频繁查询多张表的特定字段组合时,可通过定义视图来避免重复编写查询语句。视图通过虚拟表抽象底层表结构,简化常用查询操作。 视图是一种逻辑表,与物理存储的基本表不同,其数据不实际驻留于磁盘。数据库仅保存视图的查询定义,实际数据始终保留在关联的基础表中。当基础表数据发生变更时,视图查询结果将动态同步这些变化。视图如同一个实时数据窗口,允许用户访问其关注的数据镜像。每次访问视图时,系统都会重新执行其定义查询以获取最新数据。
  • stats_history_retention_time 参数说明:每个对象(包括表、列、分区、索引)的历史统计信息保留时间。每个对象在收集统计信息时会同时存入历史统计信息表中,当历史统计信息表中该对象的统计信息的保留时间超过该阈值后,再次收集新的统计信息时,已经超过保留时间的统计信息会被清理。 参数类型:浮点型 参数单位:d(天) 取值范围:-1、0 ~ 365000,-1表示历史统计信息不因时间而清除。 默认值:31 设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。 设置建议:推荐使用默认值,如果需要记录更早时间的历史版本的统计信息可以适当调大该参数,但可能会对analyze的性能产生一定影响。 设置不当的风险与影响:设置过大可能会对analyze的性能产生一定影响。
  • enable_planmgr_cplan_opt 参数说明:该参数用于控制,当优化器使用custom plan时,是否尝试使用自适应计划进行拦截,如果拦截成功,则会使用自适应计划,否则会继续使用该custom plan。 参数类型:布尔型 参数单位:无 取值范围: on:表示不尝试使用自适应计划进行拦截。 off:表示尝试使用自适应计划进行拦截。 默认值:on 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:无
  • enable_invisible_indexes 参数说明:设置优化器是否可以使用不可见索引。该参数可在PDB级别设置。 索引在被设置为不可见状态后,可能会对查询语句的性能产生影响。此时若不想变更索引可见性状态,且打算使用不可见索引,可设置enable_invisible_indexes参数为on。 参数类型:布尔型 参数单位:无 取值范围: on:优化器可以使用不可见索引。 off:优化器不可以使用不可见索引。 默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。 设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:使用不可见索引但未开启此参数时,可能导致忽略不可见索引,因此可能有更优计划未被考虑。
共100000条
提示

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