关键字:

安全、身份鉴别、用户管理、审计

一、安装前准备

1.1 软件环境要求

金仓数据库管理系统KingbaseES V8.0支持微软Windows 7、Windows XP、Windows 2003、 Windows
2008等32位及64位发行版本。

1.2 安装包准备

准备需要安装的金仓数据库管理系统KingbaseES安装程序和jdk1.8及以上的jdk环境。

1.3 注意事项

1.3.1 安装用户

在安装金仓数据库管理系统KingbaseES V8.0时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。Windows
10及以上的操作系统,需要使用管理员身份安装。

1.3.2 安装目录

金仓数据库管理系统KingbaseES安装过程中有默认的安装目录C:\Program Files\Kingbase\ES\V8。

安全功能入门学习

一、身份鉴别

1.1密码复杂度检查

1.功能打开:

在data/kingbase.conf的shared_preload_libraries 中增加passwordcheck ,重启数据库

system创建extension:create extension passwordcheck;

system打开功能:

alter system set passwordcheck.enable=on; 
select sys_reload_conf(); 

2.参数:

1).passwordcheck.password_length :口令最小长度,取值范围[8,63],默认值8

2).passwordcheck.password_condition_digit:口令至少包含几个数字,取值范围[2,61],默认值2

3).passwordcheck.password_condition_letter:口令至少包含几个字母,取值范围[2,61],默认值2

4).passwordcheck.password_condition_punct:口令至少包含几个特殊字符,取值范围[0,59],默认值0,其中特殊符号为除空白符、英文字母、单引号和数字外的所有可见字符

3.功能关闭:

1.system直接关闭:

a)Alter system set passwordcheck.enable=off;

b)Select sys_reload_conf();

2.system执行:

a)drop extension passwordcheck;

b)shared_preload_libraries 中删除passwordcheck ,重启数据库

尝试了一下去掉拓展passwordcheck后,设置密码:

file

修改数据库密码:ALTER USER test PASSWORD ‘123’;

1.2密码有效期

1.功能打开:

1.在kingbase.conf的shared_preload_libraries 中增加identity_pwdexp ,重启数据库

2.system创建extension:create extension identity_pwdexp;

2.参数:

1.identity_pwdexp.password_change_interval
:密码有效期,单位是天,取值范围[0,INT_MAX],默认值7,0是关闭该功能无限制

设置有效期0,失败,自动设置为30

2.identity_pwdexp.max_password_change_interval
:最大密码有效期,单位是天,取值范围[1,INT_MAX],默认值30,此参数用于限制密码有效期的设置范围,当设置的密码有效期大于最大密码有效期时,系统会报错提示。

设置最大值intmax2147483647成功

file

设置有限期1,最大值1失败 设置有限期30,最大值30成功

file

3.功能关闭:

1.system直接关闭:

a)Alter system set identity_pwdexp.password_change_interval =0;

b)Select sys_reload_conf();

2.system执行:

a)drop extension identity_pwdexp;

b)从shared_preload_libraries 中删除identity_pwdexp ,重启数据库

1.3用户登录(异常登录和解除锁定)

1.3.1异常登录

1.功能打开:

1.在kingbase.conf的shared_preload_libraries 中增加sys_audlog ,重启数据库

2.system创建extension:create extension sys_audlog;

2.参数:

1.sys_audlog.user_logonlog_level
:取值范围[0,2],默认值0,0是不记录任何用户登录信息,1表示只记录用户登录成功信息,2表示记录用户成功失败信息

2.sys_audlog.error_user_connect_times
:允许用户连续登录失败的最大次数,用户登录失败的次数大于超过该值,用户自动锁定,取值范围[0,INT_MAX],默认值0

3.sys_audlog.error_user_connect_interval:用户被锁定时间,若用户被锁定的时间超过了该参数,则该用户可自动解锁,单位是分钟,取值范围[0,INT_MAX],默认值0
,即0时关闭自动解锁功能,需手动解锁。

4.sys_audlog.max_error_user_connect_times:用户登录失败次数的最大值界限,
sys_audlog.error_user_connect_times的最大值,取值范围[0,INT_MAX],默认值2147483647

file

3.功能关闭:

1.system直接关闭:

a)Alter system set sys_audlog.user_logonlog_level =0;

b)Alter system set sys_audlog.error_user_connect_times =0;

c)Select sys_reload_conf();

2.system执行:

a)drop extension sys_audlog;

从shared_preload_libraries 中删除sys_audlog ,重启数据库。

1.3.2解除锁定

1.超过时间间隔自动解除用户封锁。

2.用户可由具有alter user 权限的用户通过SQL 语句进行手动解锁,解锁后用户登录的信息自动删除。语句: alter user username
with login;

注意:

  1. 超过时间间隔后自动解锁用户需要登录成功,若达到解锁时间后重新登录且再次失败,用户会继续锁定。

  2. 登录时若不加-W 时会自动进行一次不带密码的登录尝试,因此会多增加一次失败记录,且在解锁用户时使用不加-W 的方式登录,会导致再次被锁定,因此在解锁用户时注意加-W 参数进行登录尝试。

1.3.3 system删除登录信息

1.通过时间:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BEFORE_DAYS(int)

2.通过用户名:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BY_NAME(cstring);

3.通过IP:SYS_AUDLOG.SYS_DEL_USER_LOGONLOG_BY_IP(cstring)

3.查询登录信息:

1.System通过系统表sys_audit_userlog,查看所有用户的登录信息

file

2.普通用户通过视查看本用户的登录信息

file

普通用户查看系统表可以看见所有用户的登录信息

file

普通用户查看系统视图结果显示关系不存在,无对应视图。

file

关于-W加错误密码

在配置文件中将本地修改为trust,但在登录数据库时使用-W加错误密码,后需要输入正确密码,并且之后切换为sso、sao时需要输入密码

在配置文件中将本地修改为trust,但在登录数据库时使用-W加正确密码,后不需要输入正确密码,并且之后切换为sso、sao时也不需要输入密码

1.4密码历史管理

口令的历史检查是由数据库管理员对初次设定的口令或更改过的口令使用天数进行设置后,在修改用户口令时,自动对口令已使用天数进行相关方面的检查。如果口令不满足指定的条件,那么更改口令将不成功。

1.功能打开

1.在kingbase.conf的shared_preload_libraries 中增加passwordhistory ,重启数据库

2.system创建extension:create extension passwordhistory;

3.system打开功能:

a)alter system set passwordhistory.enable=on;

b)sys_reload_conf();

2.参数

passwordhistory.password_time:设置口令历史天数,默认0,0是永久限制

3.功能关闭

1.system直接关闭:

a)alter system set passwordhistory.enable =off;

b)select sys_reload_conf();

2.system执行:

a)drop extension passwordhistory;

b)从shared_preload_libraries 中删除passwordhistory,重启数据库

二、用户管理

2.1三权分立

a. 系统管理员(SYSTEM)

主要负责执行数据库日常管理的各种操作和自主存取控制。(数据库管理员用户不能创建和修改安全员和审计员,也不能将一个普通用户修改为安全员或者审计员)

b. 安全管理员(SSO)

主要负责强制访问规则的制定和管理,监督审计管理员和普通用户的操作,不能创建和操作普通对象。(安全管理员只能创建和修改安全员并且不能将安全员修改为非安全员)

c. 审计管理员(SAO)

主要负责数据库的审计,监督系统管理员和安全管理员的操作,不能创建和操作普通对象。(审计管理员只能创建和修改审计员并且不能将审计员修改为非审计员。)

创建超级用户,显示不能加参数

file

创建角色:

CREATE ROLE name LOGIN;
 CREATE USER name;
 CREATE USER name ACCOUNT UNLOCK;

创建超级管理员:

CREATE ROLE name SUPERUSER;

注意当开启sso_update后,上述第一句第3、4句不可用,只能先CREATE USER name;创建角色,再alter user 【username】
with superuser;修改权限。

2.2自主访问控制和强制访问控制的区别:

| 自主访问控制| 强制访问控制
—|—|—
简称| DAC| MAC
访问控制对象| 由属主自己(或数据库管理员)决定是否将自己客体的访问权或部分访问权授予其他主体| 由数据库安全员指定主体对客体的访问范围。
访问控制客体| TABLE、VIEW、SEQUENCE、DATABASE、TABLESPACE、PROCEDURE、FUNCTION等|
强制访问控制的客体是表中的数据
总结| 先进行自主访问控制判断,之后进行强制访问控制判断,只有都通过,才能访问客体|

三、加密

3.1储存加密-钱包

1.使用前提:

在kingbase.conf的shared_preload_libraries 中增加sysencrypt,并重启数据库

使用说明:创建加密对象前需要打开钱包,钱包默认密码为123456

打开钱包:OPENUP WALLET WITH PASSWORD “123456”;

关闭钱包:CLOSEUP WALLET WITH PASSWORD “123456”;

2.支持的加密对象:

•表空间加密:

用户不指定密钥

CREATE TABLESPACE ENC_TS_NOKEY LOCATION '@testtablespace@' with (encryption = true);
CREATE TABLE TEST_ENC_NOKEY(ID INT, NAME VARCHAR(100)) TABLESPACE ENC_TS_NOKEY;

用户可以指定密钥,通过enckey option来指定加密表空间的密钥

CREATE TABLESPACE ENC_TS_KEY LOCATION '@testtablespace@' with (encryption = true, enckey = 'k1ngb2se');
CREATE TABLE TEST_ENC_KEY(ID INT, NAME VARCHAR(100)) TABLESPACE ENC_TS_KEY;

•列加密

CREATE TABLE TEST_COL(ID INT ENCRYPTED, NAME VARCHAR(16) ENCRYPTED);

•备份加密

sys_dump/sys_store使用 –K 指定加密密钥,表示启用备份加密,加密算法是sm4

3.使用步骤

打开钱包 file

用户不指定密钥时创建表空间和表

file

用户指定密钥时创建表空间和表:

file
file

列加密

file

4.修改钱包密码:

手册:

file

Sso修改失败

file

System修改成功

file

四、审计

4.1分类

1.服务器事件审计:

数据库服务器的启动、数据库服务器的停止、数据库服务器配 置文件的重新加载、用户登录、用户登出。简称为:服务器级审计或服务器审计

file

2.语句级审计:

包括 DBMS 提供的 DDL、DML、DQL、DCL、TCL 等语句引发的事件

3.模式对象审计:

指在某个确定的模式对象上进行 SELECT 或 DML 操作时引发的事
件进行审计。模式对象包括表、视图、物化视图、过程、函数、序列。模式对象不包括有依附关系的对象,如 依附于表的索引、约束、触发器、分区表等。

新建语句审计动作

file

其中用户必须设置

查询动作id后删除

file

新建对象审计:

file

其中模式必须设置。

4.2审计入侵检测

①参数 sysaudit.ids 设置为true时开启入侵检测功能

②通过函数create_ids_rule和drop_ids_rule启用和删除入侵规则

③通过show_ids_rules()查看当前检测规则

④审计管理员sao可在数据库security中,查看入侵检测日志sysaudit_ids_log和检测结果sysaudit_ids_result

⑤参数sysaudit.ids_mail_enable=true开启邮件提醒

4.3审计记录转储

⑥参数 sysaudit.enable_auto_dump_auditlog=true/false开启/关闭自动转储

⑦通过函数sysaudit.dump_auditlog和sysaudit.restore_auditlog转储和恢复审计日志

⑧通过sysaudit.show_auditlog_dump_file函数查看转储文件

更多信息,参见https://help.kingbase.com.cn/v8/index.html

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

扫码领取

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐