返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

指定字段包围符为“"”
示例
示例中所用的表及数据:
DROP TABLE IF EXISTS cust;
CREATE
TABLE
cust(c_id
INT,
c_name
VARCHAR(20),
c_addr
VARCHAR(100));
INSERT INTO cust VALUES (1, 'xiaoming', 'Tianjin');
INSERT INTO cust VALUES (3, 'qiaorui', 'Hebei');

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1263
INSERT INTO cust VALUES (4, 'tianfei', 'Anhui');
INSERT INTO cust VALUES (2, 'zhangling', 'Hunan');
导出SQL 语句:
gbase>
rmt:SELECT
*
FROM
cust
INTO
OUTFILE
'/home/gbase/temp/cust.txt' FIELDS TERMINATED BY ';' ENCLOSED BY
'"';
Query OK, 4 rows affected
查看导出文件:
$ cat cust.txt
"1";"xiaoming";"Tianjin"
"3";"qiaorui";"Hebei"
"4";"tianfei";"Anhui"
"2";"zhangling";"Hunan"

审计概述
背景信息
数据库安全对数据库系统来说至关重要。GBase 8c 将用户对数据库的所有操作写入审
计日志。数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找
出非法操作的用户、时间和内容等。
关于审计功能,用户需要了解以下几点内容:

审计总开关audit_enabled 支持动态加载。在数据库运行期间修改该配置项的值会立即
生效,无需重启数据库。默认值为on,表示开启审计功能。

除了审计总开关,各个审计项也有对应的开关。只有开关开启,
对应的审计功能才能生
效。

各审计项的开关支持动态加载。
在数据库运行期间修改审计开关的值,
不需要重启数据
库便可生效。
目前,GBase 8c 支持以下审计项如表7-14 所示。
表7-14 配置审计项
配置项
描述
用户登录、注销审计
参数:audit_login_logout
默认值为7,表示开启用户登录、退出的审计功能。设置为0 表示
关闭用户登录、退出的审计功能。不推荐设置除0 和7 之外的值。
数据库启动、停止、
恢复和切换审计
参数:audit_database_process
默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。
用户锁定和解锁审计
参数:audit_user_locked
默认值为1,表示开启审计用户锁定和解锁功能。
用户访问越权审计
参数:audit_user_violation
默认值为0,表示关闭用户越权操作审计功能。
授权和回收权限审计
参数:audit_grant_revoke

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
188
默认值为1,表示开启审计用户权限授予和回收功能。
数据库对象的
CREATE,ALTER,
DROP 操作审计
参数:audit_system_object
默认值为12295,表示只对DATABASE、SCHEMA、USER、DATA
SOURCE 这四类数据库对象的CREATE、ALTER、DROP 操作进
行审计。
具体表的INSERT、
UPDATE 和DELETE
操作审计
参数:audit_dml_state
默认值为0,
表示关闭具体表的DML 操作(SELECT 除外)审计功
能。
SELECT 操作审计
参数:audit_dml_state_select
默认值为0,表示关闭SELECT 操作审计功能。
COPY 审计
参数:audit_copy_exec
默认值为1,表示开启copy 操作审计功能。
存储过程和自定义函
数的执行审计
参数:audit_function_exec
默认值为0,表示不记录存储过程和自定义函数的执行审计日志。
SET 审计
参数:audit_set_parameter
默认值为1,表示记录set 操作审计日志
事务ID 记录
参数:audit_xid_info
默认值为0,表示关闭审计日志记录事务ID 功能。
安全相关参数及说明请参见表7-15。
表7-15 安全相关参数及说明
参数名
说明
ssl
指定是否启用SSL 连接。
require_ssl
指定服务器端是否强制要求SSL 连接。
ssl_ciphers
指定SSL 支持的加密算法列表。
ssl_cert_file
指定包含SSL 服务器证书的文件的名称。
ssl_key_file
指定包含SSL 私钥的文件名称。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
189
ssl_ca_file
指定包含CA 信息的文件的名称。
ssl_crl_file
指定包含CRL 信息的文件的名称。
password_policy
指定是否进行密码复杂度检查。
password_reuse_time
指定是否对新密码进行可重用天数检查。
password_reuse_max
指定是否对新密码进行可重用次数检查。
password_lock_time
指定帐户被锁定后自动解锁的时间。
failed_login_attempts
如果输入密码错误的次数达到此参数值时,当前帐户被锁定。
password_encryption_type
指定采用何种加密方式对用户密码进行加密存储。
password_min_uppercase
密码中至少需要包含大写字母的个数。
password_min_lowercase
密码中至少需要包含小写字母的个数。
password_min_digital
密码中至少需要包含数字的个数。
password_min_special
密码中至少需要包含特殊字符的个数。
password_min_length
密码的最小长度。
说明:在设置此参数时,请将其设置成不大于
password_max_length,否则进行涉及密码的操作会一直出现密
码长度错误的提示
password_max_length
密码的最大长度。
说明:在设置此参数时,请将其设置成不小于
password_min_length,
否则进行涉及密码的操作会一直出现密码
长度错误的提示。
password_effect_time
密码的有效期限。
password_notify_time
密码到期提醒的天数。
audit_enabled
控制审计进程的开启和关闭。
audit_directory
审计文件的存储目录。
audit_data_format
审计日志文件的格式,当前仅支持二进制格式(binary)。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
190
audit_rotation_interval
指定创建一个新审计日志文件的时间间隔。当现在的时间减去
上次创建一个审计日志的时间超过了此参数值时,服务器将生
成一个新的审计日志文件。
audit_rotation_size
指定审计日志文件的最大容量。当审计日志消息的总量超过此
参数值时,服务器将生成一个新的审计日志文件。
audit_resource_policy
控制审计日志的保存策略,以空间还是时间限制为优先策略,
on 表示以空间为优先策略。
audit_file_remain_time
表示需记录审计日志的最短时间要求,该参数在
audit_resource_policy 为off 时生效。
audit_space_limit
审计文件占用磁盘空间的最大值。
audit_file_remain_thresho
ld
审计目录下审计文件的最大数量。
audit_login_logout
指定是否审计数据库用户的登录(包括登录成功和登录失败)、
注销。
audit_database_process
指定是否审计数据库启动、停止、切换和恢复的操作。
audit_user_locked
指定是否审计数据库用户的锁定和解锁。
audit_user_violation
指定是否审计数据库用户的越权访问操作。
audit_grant_revoke
指定是否审计数据库用户权限授予和回收的操作。
audit_system_object
指定是否审计数据库对象的CREATE、DROP、ALTER 操作。
audit_dml_state
指定是否审计具体表的INSERT、UPDATE、DELETE 操作。
audit_dml_state_select
指定是否审计SELECT 操作。
audit_copy_exec
指定是否审计COPY 操作。
audit_function_exec
指定在执行存储过程、匿名块或自定义函数(不包括系统自带
函数)时是否记录审计信息。
audit_set_parameter
指定是否审计SET 操作。
enableSeparationOfDuty
指定是否开启三权分立。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
191
session_timeout
建立连接会话后,如果超过此参数的设置时间,则会自动断开
连接。
auth_iteration_count
认证加密信息生成过程中使用的迭代次数。
操作步骤
例如在分布式集群中执行如下操作:
步骤1 以操作系统用户gbase 登录数据库CN 节点。
步骤2 使用如下命令连接数据库。
gsql -d postgres -p 5432
postgres 为需要连接的数据库名称,5432 为数据库CN 节点的端口号。连接成功后,系
统显示类似如下信息:
gsql ((GBase8c 3.0.0BXX build d28887c9) compiled at 2022-05-13 11:31:40 commit 0 last mr
55 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
gbase=#
步骤3 检查审计总开关状态。

用show 命令显示审计总开关audit_enabled 的值。
postgres=#
SHOW audit_enabled;
如果显示为off,执行“\q”命令退出数据库。

执行如下命令开启审计功能,参数设置立即生效。
gs_guc set -Z coordinator -N all -I all
-c "audit_enabled=on"
其中-Z 参数仅在分布式情况下需要指定。
步骤4 配置具体的审计项。
说明

只有开启审计功能,用户的操作才会被记录到审计文件中。

各审计项的默认参数都符合安全标准,
用户可以根据需要开启其他审计功能,
但会
对性能有一定影响。
以开启对数据库所有对象的增删改操作的审计开关为例,
其他配置项的修改方法与此相

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
192
同,修改配置项的方法如下所示:
gs_guc reload -Z coordinator -N all -I all -c "audit_system_object=12295"
其中,
-Z 参数仅在分布式情况下需要指定,
audit_system_object 代表审计项开关,
12295
为该审计开关的值。
----结束

PG_CONSTRAINT 系统表存储表上的检查约束、主键和唯一约束。
名称
类型
描述
oid
oid
行标识符(隐含属性,必须明确选择)。
conname
name
约束名称(不一定是唯一的)。
connamespace
oid
包含这个约束的名称空间的OID。
contype
“char”
c = 检查约束。
p = 主键约束。
u = 唯一约束。
t = 触发器约束。
condeferrable
boolean
这个约束是否可以推迟。
condeferred
boolean
缺省时这个约束是否可以推迟。
convalidated
boolean
约束是否有效。目前,只有外键和CHECK 约束可
将其设置为FALSE。
conrelid
oid
这个约束所在的表;如果不是表约束则为0。
contypid
oid
这个约束所在的域;如果不是一个域约束则为0。
conindid
oid
与约束关联的索引ID。
confrelid
oid
如果是外键,则为参考的表;否则为0。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
777
名称
类型
描述
confupdtype
“char”
外键更新动作代码。
a = 没动作。
r = 限制。
c = 级联。
n = 设置为null。
d = 设置为缺省。
confdeltype
“char”
外键删除动作代码。
a = 没动作。
r = 限制。
c = 级联。
n = 设置为null。
d = 设置为缺省。
confmatchtype
“char”
外键匹配类型。
f = 全部。
p = 部分。
u = 未指定(在f 的基础上允许匹配NULL 值)。
conislocal
boolean
是否是为关系创建的本地约束。
coninhcount
integer
约束直接继承父表的数目。继承父表数非零时,不
能删除或重命名该约束。
connoinherit
boolean
是否可以被继承。
consoft
boolean
是否为信息约束(Informational Constraint)。
conopt
boolean
是否使用信息约束优化执行计划。
conkey
smallint[]
如果是表约束,则是约束控制的字段列表。
confkey
smallint[]
如果是一个外键,是参考的字段的列表。
conpfeqop
oid[]
如果是一个外键,
是做PK=FK 比较的相等操作符I
D 的列表。
conppeqop
oid[]
如果是一个外键,
是做PK=PK 比较的相等操作符I
D 的列表。
conffeqop
oid[]
如果是一个外键,
是做FK=FK 比较的相等操作符I
D 的列表。由于当前不支持外键,所以值为空。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
778
名称
类型
描述
conexclop
oid[]
如果是一个排他约束,是列的排他操作符ID 列表。
conbin
pg_node_tre
e
如果是检查约束,那就是其表达式的内部形式。
consrc
text
如果是检查约束,则是表达式的人类可读形式。
conincluding
smallint[]
不用做约束,但是会包含在INDEX 中的属性列。
须知:
consrc 在被引用的对象改变之后不会被更新,
它不会跟踪字段的名称修改。与其依赖这
个字段,最好还是使用pg_get_constraintdef()来抽取一个检查约束的定义。
pg_class.relchecks 需要和在此表上为给定关系找到的检查约束的数目一致。