简介

本实验适用于 openGauss数据库,通过该实验可以顺利完成对数据库用户权限的控制及各种审计。

内容描述

本实验主要内容为用户权限控制(包括用户、角色、权限的授予、权限的回收)和各审计。

前置条件

openGauss数据库安全实验需要掌握openGauss数据库的基本操作和SQL语法,openGauss数据库支持SQL2003标准语法,数据库基本操作参见附录一。

实验环境说明

组网说明
本实验环境为华为云 ECS 服务器 + openGauss数据库。

设备介绍
为了满足数据库原理与实践课程实验需要,建议每套实验环境采用以下配置:
设备名称、型号与版本的对应关系如下:

设备明细表

设备名称 设备型号 软件版本
数据库 openGauss openGauss 1.1.0
操作系统 openEuler openEuler 20.3LTS

实验概览

1 用户权限控制

1.1 实验介绍

1.1.1 关于本实验

本实验主要描述用户的创建管理、角色的创建管理、Schema的创建管理、用户权限设置、用户安全策略设置。

1.1.2 实验目的

●掌握用户、角色、Schema的创建及管理;
●掌握用户权限的授予各回收;
● 掌握用户安全策略如何设置。

1.2 用户

通过CREATE USER创建的用户,默认具有LOGIN权限;
通过CREATE USER创建用户的同时系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA;其他数据库中,则不自动创建同名的SCHEMA;用户可使用CREATE SCHEMA命令,分别在其他数据库中,为该用户创建同名SCHEMA。

1.2.1 创建、修改、删除用户

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 连接数据库后,进入SQL命令界面。创建用户jim,登录密码为Bigdata@123。

postgres=# CREATE USER jim PASSWORD 'Bigdata@123';
CREATE ROLE

说明:密码规则如下:
● 密码默认不少于8个字符;
● 不能与用户名及用户名倒序相同;
● 至少包含大写字母(A-Z),小写字母(a-z),数字(0-9),非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符;
● 创建用户时,应当使用双引号或单引号将用户密码括起来。
步骤 3 查看用户列表。

postgres=# SELECT * FROM pg_user; usename | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd  | valbegin | valuntil |   respool    | parent | spacelimit | useconfig | nodegroup |tempspacelimit | spillspacelimit
---------+----------+-------------+----------+-----------+---------+----------+---omm     |       10 | t           | t        | t         | t       | ******** |          |          | default_pool |      0 |            |           |           || jim     |    16389 | f           | f        | f         | f       | ******** |          |          | default_pool |      0 |            |           |           ||
(2 rows)

步骤 4 创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。

postgres=# CREATE USER dim CREATEDB PASSWORD 'Bigdata@123';
CREATE ROLE

步骤 5 将用户jim的登录密码由Bigdata@123修改为Abcd@123。

postgres=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'Bigdata@123';
ALTER ROLE

步骤 6 为用户jim追加有创建角色的CREATEROLE权限。

postgres=# ALTER USER jim CREATEROLE;
ALTER ROLE

步骤 7 锁定jim帐户。

postgres=# ALTER USER jim ACCOUNT LOCK;
ALTER ROLE

步骤 8 解锁jim帐户。

postgres=# ALTER USER jim ACCOUNT UNLOCK;
ALTER ROLE

步骤 9 删除用户。

postgres=# DROP USER jim CASCADE;
DROP ROLE

步骤 10 退出数据库

postgres=# \q

1.3 角色

角色是拥有数据库对象和权限的实体。在不同的环境中角色可以认为是一个用户,一个组或者兼顾两者。
在数据库中添加一个新角色,角色无登录权限。
创建角色的用户必须具备CREATE ROLE的权限或者是系统管理员。

1.3.1 创建、修改、删除角色

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 创建一个角色,名为manager,密码为Bigdata@123。

postgres=# CREATE ROLE manager IDENTIFIED BY 'Bigdata@123';
CREATE ROLE

步骤 3 创建一个角色,从2021年1月1日开始生效,到2021年6月1日失效。

postgres=# CREATE ROLE miriam WITH LOGIN PASSWORD 'Bigdata@123' VALID BEGIN '2021-01-01' VALID UNTIL '2021-06-01';
CREATE ROLE

步骤 4 修改角色manager的密码为abcd@123。

postgres=# ALTER ROLE manager IDENTIFIED BY 'abcd@123' REPLACE 'Bigdata@123';
ALTER ROLE

步骤 5 修改角色manager为系统管理员。

postgres=# ALTER ROLE manager SYSADMIN;
ALTER ROLE

步骤 6 删除角色manager。

postgres=# DROP ROLE manager;
DROP ROLE

步骤 7 查看角色。

postgres=# SELECT * FROM PG_ROLES;rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolauditadmin | rolsystemadmin | rolconnlimit | rol
password |     rolvalidbegin      |     rolvaliduntil      |  rolrespool  | rolparentid | roltabspace | rolconfig |  oid  | roluseft | rolkind | nodegroup | rolte
mpspace | rolspillspace
---------+----------+------------+---------------+-------------+--------------+-------------+----------------+---------------omm     | t        | t          | t             | t           | t            | t           | t              | t             | t              |           -1 | ***
*****    |                        |                        | default_pool |           0 |             |           |    10 | t        | n       |           |      | dim     | f        | t          | f             | t           | f            | t           | f              | f             | f              |           -1 | ***
*****    |                        |                        | default_pool |           0 |             |           | 16393 | f        | n       |           |      | miriam  | f        | t          | f             | f           | f            | t           | f              | f             | f              |           -1 | ***
*****    | 2020-07-01 00:00:00+08 | 2020-12-01 00:00:00+08 | default_pool |           0 |             |           | 16401 | f        | n       |           |      |
(3 rows)

步骤 8 退出数据库

postgres=# \q

1.4 Schema

Schema又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰。
每个数据库包含一个或多个Schema。
在数据库创建用户时,系统会自动帮助用户创建一个同名Schema。

1.4.1 创建、修改、删除Schema

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 创建模式ds。

postgres=# CREATE SCHEMA ds;
CREATE SCHEMA

步骤 3 将当前模式ds更名为ds_new。

postgres=# ALTER SCHEMA ds RENAME TO ds_new;
ALTER SCHEMA

步骤 4 创建用户jack。

postgres=# CREATE USER jack PASSWORD 'Bigdata@123';
CREATE ROLE

步骤 5 将DS_NEW的所有者修改为jack。

postgres=# ALTER SCHEMA ds_new OWNER TO jack;
ALTER SCHEMA

步骤 6 查看Schema所有者。

postgres=# SELECT s.nspname,u.usename AS nspowner FROM pg_namespace s, pg_user u WHERE s.nspowner = u.usesysid;nspname       | nspowner
--------------------+----------pg_toast           | ommcstore             | ommdbe_perf           | ommsnapshot           | ommpg_catalog         | ommpublic             | omminformation_schema | ommdim                | dimjack               | jackds_new             | jack
(10 rows)

步骤 7 删除用户jack和模式ds_new。

postgres=# DROP SCHEMA ds_new;
DROP SCHEMA
postgres=# DROP USER jack;
DROP ROLE

步骤 8 退出数据库

postgres=# \q

1.5 用户权限设置及回收

使用GRANT命令进行用户授权包括以下三种场景:
● 将系统权限授权给角色或用户。
● 将数据库对象授权给角色或用户。
● 将角色或用户的权限授权给其他角色或用户。

1.5.1 将系统权限授权给用户或者角色

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 创建名为joe的用户,并将sysadmin权限授权给joe。

postgres=# CREATE USER joe PASSWORD 'Bigdata@123';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES TO joe;
ALTER ROLE

1.5.2 将数据库对象授权给角色或用户

步骤 1 撤销joe用户的sysadmin权限,然后创建tpcds模式,并给tpcds模式下创建一张reason表。

postgres=# REVOKE ALL PRIVILEGES FROM joe;
ALTER ROLE
postgres=# CREATE SCHEMA tpcds;
CREATE SCHEMA
postgres=# CREATE TABLE tpcds.reason
(r_reason_sk            INTEGER               NOT NULL,r_reason_id            CHAR(16)              NOT NULL,r_reason_desc                VARCHAR(20)
);
CREATE TABLE

步骤 2 将模式tpcds的使用权限和表tpcds.reason的所有权限授权给用户joe。

postgres=# GRANT USAGE ON SCHEMA tpcds TO joe;
GRANT
postgres=# GRANT ALL PRIVILEGES ON tpcds.reason TO joe;
GRANT

授权成功后,joe用户就拥有了tpcds.reason表的所有权限,包括增删改查等权限。

步骤 3 将tpcds.reason表中r_reason_sk、r_reason_id、r_reason_desc列的查询权限,r_reason_desc的更新权限授权给joe。

postgres=# GRANT select (r_reason_sk,r_reason_id,r_reason_desc),update (r_reason_desc) ON tpcds.reason TO joe;
GRANT

步骤 4 将数据库postgres的连接权限授权给用户joe,并给予其在postgres中创建schema的权限,而且允许joe将此权限授权给其他用户。

postgres=# GRANT create,connect on database postgres TO joe WITH GRANT OPTION;
GRANT

步骤 5 创建角色tpcds_manager,将模式tpcds的访问权限授权给角色tpcds_manager,并授予该角色在tpcds下创建对象的权限,不允许该角色中的用户将权限授权给其人。

postgres=# CREATE ROLE tpcds_manager PASSWORD 'Bigdata@123';
CREATE ROLE
postgres=# GRANT USAGE,CREATE ON SCHEMA tpcds TO tpcds_manager;
GRANT

1.5.3 将用户或者角色的权限授权给其他用户或角色

步骤 1 创建角色manager,将joe的权限授权给manager,并允许该角色将权限授权给其他人。

postgres=# CREATE ROLE manager PASSWORD 'Bigdata@123';
CREATE ROLE
postgres=# GRANT joe TO manager WITH ADMIN OPTION;
GRANT ROLE

步骤 2 创建用户senior_manager,将用户manager的权限授权给该用户。

postgres=# CREATE ROLE senior_manager PASSWORD 'Bigdata@123';
CREATE ROLE
postgres=# GRANT manager TO senior_manager;
GRANT ROLE

1.5.4 权限回收

步骤 1 撤销权限,并清理用户。

postgres=# REVOKE joe FROM manager;
REVOKE ROLE
postgres=# REVOKE manager FROM senior_manager;
REVOKE ROLE
postgres=# DROP USER manager;
DROP ROLE
postgres=# REVOKE ALL PRIVILEGES ON tpcds.reason FROM joe;
REVOKE
postgres=# REVOKE ALL PRIVILEGES ON SCHEMA tpcds FROM joe;
REVOKE
postgres=# REVOKE USAGE,CREATE ON SCHEMA tpcds FROM tpcds_manager;
REVOKE
postgres=# DROP ROLE tpcds_manager;
DROP ROLE
postgres=# DROP ROLE senior_manager;
DROP ROLE
postgres=# DROP USER joe CASCADE;
DROP ROLE

步骤 2 退出数据库

postgres=# \q

注意:实验完成后请尽量清理本实验的对象,以免影响与其它实验产生冲突。

1.6 安全策略设置

为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。
当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。

1.6.1 设置账户安全策略

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 配置failed_login_attempts参数。
查看已配置的参数。

postgres=# SHOW failed_login_attempts;failed_login_attempts
-----------------------10
(1 row)

如果显示结果不为10,执行“\q”命令退出数据库。
然后在操作系统 omm 用户下执行如下命令设置成默认值10。

gs_guc reload -D /gaussdb/data/dbnode -c "failed_login_attempts=10"

注意:/gaussdb/data/dbnode 指的是数据目录,要根据自己实际情况调整。
比如数据目录/gaussdb/data/db1,执行结果如下。

[omm@ecs-700c ~]$ gs_guc reload -D /gaussdb/data/db1 -c "failed_login_attempts=9"
expected instance path: [/gaussdb/data/db1/postgresql.conf]
gs_guc reload: failed_login_attempts=9: [/gaussdb/data/ecs-700c/postgresql.conf]
server signaledTotal instances: 1. Failed instances: 0.
Success to perform gs_guc!

步骤 3 配置password_lock_time参数。
查看已配置的参数。

[omm@ecs-c2f0 ~]$ gsql -d postgres -p 26000 -r
gsql ((openGauss 1.0.0 build 0bd0ce80) compiled at 2020-06-30 18:19:23 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
postgres=# SHOW password_lock_time;password_lock_time
--------------------1
(1 row)

如果显示结果不为1,执行“\q”命令退出数据库。
然后在操作系统 omm 用户下执行如下命令设置成默认值1。

gs_guc reload -N all -I all -c "password_lock_time=1"

执行结果如下:

[omm@ecs-700c ~]$ gs_guc reload -N all -I all -c "password_lock_time=1"
NOTICE: password_lock_time and failed_login_attempts must have positive for lock and unlock functions to work as.
Begin to perform gs_guc for all datanodes.Total instances: 1. Failed instances: 0.
Success to perform gs_guc!

1.6.2 设置账号有效期

创建新用户时,需要限制用户的操作期限(有效开始时间和有效结束时间)。
不在有效操作期内的用户需要重新设定帐号的有效操作期。

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 创建用户并制定用户的有效开始时间和有效结束时间。

postgres=# CREATE USER joe WITH PASSWORD 'Bigdata@123' VALID BEGIN '2020-07-10 08:00:00' VALID UNTIL '2022-10-10 08:00:00';
CREATE ROLE

步骤 3 重新设定帐号的有效期。

postgres=# ALTER USER joe WITH VALID BEGIN '2020-11-10 08:00:00' VALID UNTIL '2021-11-10 08:00:00';
ALTER ROLE

步骤 4 退出数据库

postgres=# \q

1.6.3 设置密码安全策略

用户密码存储在系统表pg_authid中,为防止用户密码泄露,openGauss对用户密码可进行加密存储、密码复杂度设置、密码重用天数设置、密码有效期限设置等。

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 配置的加密算法。
查看已配置的参数。

postgres=# SHOW password_encryption_type;password_encryption_type
--------------------------2
(1 row)

如果显示结果为0或1,执行“\q”命令退出数据库。
然后在操作系统 omm 用户下执行如下命令将其设置为安全的加密算法。

gs_guc reload -N all -I all -c "password_encryption_type=2"

注意说明:
● 当参数password_encryption_type设置为0时,表示采用md5方式对密码加密。md5为不安全的加密算法,不建议使用。
● 当参数password_encryption_type设置为1时,表示采用sha256和md5方式对密码加密。其中包含md5为不安全的加密算法,不建议使用。
● 当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密,为默认配置。

步骤 3 配置密码安全参数。
查看已配置的参数。

postgres=# SHOW password_policy;password_policy
-----------------1
(1 row)

如果显示结果不为1,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值1。

gs_guc reload -N all -I all -c "password_policy=1"

注意说明:
● 参数password_policy设置为1时表示采用密码复杂度校验,默认值;
● 参数password_policy设置为0时表示不采用任何密码复杂度校验,设置为0会存在安全风险,不建议设置为0,即使需要设置也要将所有openGauss节点中的password_policy都设置为0才能生效。

步骤 4 配置密码重用。
查看不可重用天数已配置的参数。

postgres=# SHOW password_reuse_time;password_reuse_time
---------------------60
(1 row)

如果显示结果不为60,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值60。

gs_guc reload -N all -I all -c "password_reuse_time=60"

查看不可重用次数已配置的参数。

postgres=# SHOW password_reuse_max;password_reuse_max0
(1 row)

如果显示结果不为0,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值0。

gs_guc reload -N all -I all -c "password_reuse_max = 0"

注意说明:
● 不可重用天数默认值为60天,不可重用次数默认值是0;
● 这两个参数值越大越安全,但是在使用过程中会带来不便,其默认值符合安全标准,用户可以根据需要重新设置参数,提高安全等级。

步骤 5 配置密码有效期限。
数据库用户的密码都有密码有效期(password_effect_time),当达到密码到期提醒天数(password_notify_time)时,系统会在用户登录数据库时提示用户修改密码。
配置password_effect_time参数。
查看已配置的参数。

postgres=# SHOW password_effect_time;password_effect_time
----------------------90
(1 row)

如果显示结果不为90,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值90(不建议设置为0)。

gs_guc reload -N all -I all -c "password_effect_time = 90"

● 配置password_notify_time参数。
查看已配置的参数。

postgres=# SHOW password_notify_time;password_notify_time
----------------------7
(1 row)

如果显示结果不为7,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值7(不建议设置为0)。

gs_guc reload -N all -I all -c "password_notify_time = 7"

用户权限控制实验结束。

2 审计

2.1 实验介绍

2.1.1 关于本实验

数据库安全对数据库系统来说至关重要,openGauss将用户对数据库的所有操作写入审计日志,数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。

本实验主要描述如何来设置数据库审计,主要包括审计开关、查看审计结果、维护审计日志。

2.1.2 实验目的

掌握如何设置数据库审计及审计日志的查看。

2.2 审计开、关

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

除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。
各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。

步骤 1 审计总开关设置。
启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r
查看已配置审计总开关参数。
postgres=# show audit_enabled;audit_enabled
---------------on
(1 row)

如果显示结果不为on,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值on(不建议设置为off)。

gs_guc reload -N all -I all -c "audit_enabled = on"

步骤 2 审计项开关设置。
查看已配置审计项参数。
以下以数据库启动、停止、恢复和切换审计项为例。

postgres=# show audit_database_process;audit_database_process
------------------------1
(1 row)

如果显示结果不为1,执行“\q”命令退出数据库。
然后在操作系统 omm下执行如下命令设置成默认值1。

gs_guc reload -N all -I all -c " audit_database_process = 1"

注意说明:
● 用户登录、注销审计 。
参数:audit_login_logout。
默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。
● 数据库启动、停止、恢复和切换审计。
参数:audit_database_process。
默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。
● 用户锁定和解锁审计 。
参数:audit_user_locked。
默认值为1,表示开启审计用户锁定和解锁功能。
● 用户访问越权审计。
参数:audit_user_violation。
默认值为0,表示关闭用户越权操作审计功能。
● 授权和回收权限审计 。
参数:audit_grant_revoke。
默认值为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。
默认值为0,表示关闭copy操作审计功能。
● 存储过程和自定义函数的执行审计 。
参数:audit_function_exec。
默认值为0,表示不记录存储过程和自定义函数的执行审计日志。
● SET审计 参数:audit_set_parameter。
默认值为1,表示记录set操作审计日志。

2.3 查看审计结果

步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 查询审计记录。

postgres=# SELECT time,type,result,username,object_name  FROM pg_query_audit('2021-01-01 10:00:00','2021-08-15 09:47:33');time          |     type      | result | username |   object_name
------------------------+---------------+--------+----------+-----------------2020-07-10 10:00:59+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:02:39+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:08:35+08 | login_success | ok     | omm      | postgres2020-07-10 10:08:35+08 | set_parameter | ok     | omm      | connection_info2020-07-10 10:08:40+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:08:42+08 | login_success | ok     | omm      | postgres2020-07-10 10:08:42+08 | set_parameter | ok     | omm      | connection_info2020-07-10 10:14:56+08 | login_success | ok     | omm      | postgres2020-07-10 10:14:56+08 | set_parameter | ok     | omm      | connection_info2020-07-10 10:16:33+08 | ddl_database  | ok     | omm      | mydb2020-07-10 10:22:42+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:26:51+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:29:08+08 | login_success | ok     | omm      | postgres2020-07-10 10:29:08+08 | set_parameter | ok     | omm      | connection_info2020-07-10 10:48:23+08 | user_logout   | ok     | omm      | postgres2020-07-10 10:55:02+08 | login_success | ok     | omm      | postgres2020-07-10 10:55:02+08 | set_parameter | ok     | omm      | connection_info2020-07-10 10:55:48+08 | login_success | ok     | omm      | postgres2020-07-10 10:55:48+08 | set_parameter | ok     | omm      | connection_info2020-07-10 11:17:25+08 | login_success | ok     | omm      | postgres2020-07-10 11:17:25+08 | set_parameter | ok     | omm      | connection_info2020-07-10 11:31:06+08 | user_logout   | ok     | omm      | postgres2020-07-10 11:34:05+08 | login_success | ok     | omm      | postgres2020-07-10 11:34:05+08 | set_parameter | ok     | omm      | connection_info2020-07-10 11:40:11+08 | login_success | ok     | omm      | postgres2020-07-10 11:40:11+08 | set_parameter | ok     | omm      | connection_info

步骤 3 退出数据库

postgres=# \q

2.4 维护审计日志

设置自动删除审计日志。
步骤 1 启动服务器,再使用gsql客户端以管理员用户身份连接postgres数据库,假设端口号为26000。

gsql -d postgres -p 26000 -r

步骤 2 配置审计文件占用磁盘空间的大小(audit_space_limit)。
查看已配置的参数。

postgres=# SHOW audit_space_limit;audit_space_limit
-------------------1GB
(1 row)

如果显示结果不为1GB(1024MB),执行“\q”命令退出数据库。
然后在操作系统 omm用户下执行如下命令设置成默认值1024MB。

gs_guc reload -N all -I all -c "audit_space_limit=1024MB"

步骤 3 配置审计文件个数的最大值(audit_file_remain_threshold)。
查看已配置的参数。

postgres=# SHOW audit_file_remain_threshold;audit_file_remain_threshold
-----------------------------1048576
(1 row)

如果显示结果不为1048576,执行“\q”命令退出数据库。
然后在操作系统 omm用户执行如下命令设置成默认值1048576。

gs_guc reload -N all -I all -c "audit_file_remain_threshold=1048576"

审计实验结束。

openGauss数据库安全指导手册就介绍到这里了,感谢您的阅读。

openGauss数据库安全指导手册相关推荐

  1. 在x86_64架构+VMware16.2.3 Pro+openEuler20.3-LTS上快速部署(一键安装)openGauss 3.1.1企业版数据库指导手册

    在x86_64架构+VMware16.2.3 Pro+openEuler20.3-LTS上快速部署(一键安装)openGauss 3.1.1企业版数据库指导手册 以下所用命令的使用参考openGaus ...

  2. openGauss数据库开发指导手册(下)

    本篇将介绍学校数据模型以及学校数据模型表操作. 1.4 学校数据模型 1.4.1 关于本实验 以学校数据库模型为例,介绍openGauss数据库数据库.表.表空间.用户及其它对象,以及SQL语法使用的 ...

  3. 在VirtualBox安装华为openGauss(基于华为指导手册)

    背景: 本学期开设的数据库原理及应用这门课需要用到openGauss. 今天根据安装指导手册安装openGauss,把坑踩了个遍. 由于老师给的资料比较丰富,选择比较多,同学们一开始会有点无从下手. ...

  4. 使用虚拟机VMwarepro1623镜像文件导入部署openGauss3.1.1指导手册

    使用虚拟机VMwarepro1623镜像文件导入部署openGauss3.1.1指导手册 (openEuler 20.03-LTS + openGauss 3.1.1) 本手册主要描述如何将现有的VM ...

  5. 三菱服务器显示d01,MR-J3-D01基础知识三菱MR-J3-D01指导手册(通用接口) - 广州正凌...

    三菱电机通用交流伺服放大器MELSERVO-J3系列. 额定输出:0.1kw. 接口类型:SSCNETⅢ光纤通讯型. 特殊功能:集成驱动安全功能. 电源规格:单相AC100VMR-J3-D01基础知识 ...

  6. 2013汇总计算 广联达gcl_36h就可成造价高手:广联达GTJ2018实操指导手册,实用

    一入造价深似海,苦算算量难下班 36h就可成造价高手:广联达GTJ2018实操指导手册,实用 很多刚进入造价行业的朋友,不会使用造价软件,每天一个劲的算算量,还是要加班到深夜才能做完工作,其实算量软件 ...

  7. 海康威视智能机器人泊车_干货|海康威视智能停车场管理系统(含技术指导手册+施工图)...

    随着汽车消费的持续增长,城市停车设施.规划.管理等方面不够完善,导致机动车停车供需矛盾.伴随着停车难问题的日益凸显,面对停车位有限资源与无限需求之间的矛盾,物联网时代就要充分利用物联网技术的力量解决有 ...

  8. UML学习总结(3)——StarUML指导手册

    StarUML使用说明-指导手册 原著:Stephen Wong            翻译:火猴 StarUML是一种生成类图和其他类型的统一建模语言(UML)图表的工具.这是一个用Java语言描述 ...

  9. Java语言程序设计实验指导_《java语言程序设计》上机实验指导手册(4).doc

    <java语言程序设计>上机实验指导手册(4).doc 1JAVA语言程序设计上机实验指导手册(4)2实验四JAVA面向对象编程1[目的]①通过编程和上机实验理解JAVA语言是如何体现面向 ...

  10. 边缘计算网关linux开发,边缘计算网关(BMG800系列)二次开发指导手册

    边缘计算网关二次开发指导手册 库函数接口介绍 (适用于:BMG800系列) 目录 1. 获取温湿度(硬件设备为sht10) 2. 获取大气压(硬件设备为bmp180) 3. 读取ADC值(硬件设备为m ...

最新文章

  1. LilyPad Arduino可穿戴技术和电子织物控制器板简介
  2. mysql dump 查看器_mysql备份之mysqldump工具
  3. tor screenrec屏幕录制+_ScreenFlow for mac(屏幕录制软件) v8.2.4中文版
  4. 实事求是来讲,比较艰难的环境能够激发人的斗志
  5. 你知道长颈鹿是怎么睡觉的吗? | 今日趣图
  6. 关于win32与win64的兼容性问题
  7. 解决: Client does not support authentication protocol requested by server; consider upgrading MySQL
  8. linux如何将文件夹添加到书签,桌面应用|[新手技巧] 如何在Ubuntu中添加和删除书签...
  9. Android自定义控件学习(六)-------使视图互动
  10. Hibernate 中upate,savaOrUpdate,merge的区别
  11. mysql允许虚拟机访问权限_设置虚拟机安装的mysql访问权限及删除mysql
  12. 云开发打工人必备上班摸鱼划水微信小程序源码
  13. 使用3DMM进行人脸重建中的配准方法
  14. 2021年大数据产业城市发展,前20强出炉!
  15. 第四届中国区块链开发大赛初评公布 超级链战队多个作品进入复赛
  16. 卡耐基梅隆大学计算机科学课本,美国卡耐基梅隆大学计算机科学专业.pdf
  17. 测试用例的设计方法_场景设计法
  18. 大数据的预测实力,这15个有趣的数据集,你可能闻所未闻
  19. celery 停止任务_celery 停止执行中 task
  20. 我的世界服务器无限圈地指令,网易我的世界怎么圈地-怎么圈地指令

热门文章

  1. leetcode报错reached end of file while parsing
  2. html中footer怎么写,HTML DOM Footer用法及代码示例
  3. 修复未能连接一个window服务器,未能连接一个windows服务的修复方法
  4. 个人知识管理(PKM)实施
  5. 传奇故事-领军AI的华裔女性-李飞飞
  6. Ubuntu下 百度在线语音合成使用
  7. 多测师_swipe 滑动操作
  8. 给网站添加HTTPS(添加SSSL证书)
  9. 操作系统进程线程区别、并发和并行、内存和外存
  10. 常用遥感SIF和GPP数据集