【国产数据库】GBase学习⑩ - 安全特性

【国产数据库】GBase学习⑩ - 安全特性

安全特性简介

  • 账户安全策略:自动锁定和解锁账户、手动锁定和解锁、锁定异常账户和删除不再使用的账户
  • 账号的有效期:限制用户的操作期限(有效开始时间和结束时间)
  • 密码的安全策略:密码的加密算法,密码复杂度,密码重用,密码有效期限,设置用户密码失效等。

权限控制

权限控制:管理用户对数据库的访问控制权限,涵盖数据库系统权限和对象权限。

  • 支持基于角色的访问控制机制,将角色和权限关联起来,通过将权限赋予给对应的角色,再将角色授予给用户,可实现用户访问控制权限管理。其中登录访问控制通过用户标识和认证技术来共同实现,而对象访问控制则基于用户在对象上的权限,通过对象权限检查实现对象访问控制。
  • 用户为相关的数据库用户分配完成任务所需要的最小权限而将数据库使用风险降到最低。
  • 支持三权分立权限访问控制模型,数据库角色可分为系统管理员、安全管理员和审计管理员。其中安全管理员负责创建和管理用户,系统管理员负责授予和撤销用户权限,审计管理员负责审计所有用户的行为。
  • 默认情况下,使用基于角色的访问控制模型。客户可通过设置参数来选择是否开启三权分立控制模型。

审计

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

  • 用户登录、注销审计
  • 数据库启动、停止、恢复和切换审计
  • 用户锁定和解锁审计
  • 用户访问越权审计
  • 授权和回收权限审计
  • 数据库对象的CREATE,ALTER,DROP操作审计
  • 具体表的INSERT、UPDATE、DELETE操作审计
  • SELECT操作审计
  • COPY审计
  • 存储过程和自定义函数的执行审计
  • SET审计

黑名单

黑名单:通过进行pg_hba.conf配置对应的黑名单或白名单
查看该文件路径:

show data_directory;
# METHOD can be "trust","reject","md5","sha256","cret"

账户安全

  1. 账户自动锁定:
show failed_login_attempts;
              alter system set failed_login_attempts=20;
  1. 账户自动解锁:
show password_lock_time;        默认一天
alter system set password_lock_time='7d';
或    gs_guc reload -Z coordinator -N all -I all -c "password_lock_time='8d'";
其中:-Z代表分支类型,coordinator 为CN节点,datanode是dn节点
     -N代表节点名称,如dn1,dn2等,all指所有节点
     -I代表实例名称,默认值为all,代表所有实例(不支持单个实例指定)
     -c代表修改的参数,如password_lock_time='7d'
  1. 手动锁定账户:
ALTER USER testuser ACCOUNT LOCK;
  1. 手动解锁账户:
ALTER USER testuser ACCOUNT UNLOCK;	
  1. 删除不使用的账户:
DROP USER testuser CASCADE;
  1. 账户有效期:
alter user test_user VALID BEGIN '2022-11-07 08:00:00' VALID UNTIL '2023-11-07 08:00:00'; 
  1. 密码加密算法:数据库参数:password_encryption_type 值:0(只支持md5,最低),1(md5和sha256),2(只sha256),3(只sm3)
select * from pg_authid where rolname in ('gbase','test_user','pp','pq');
alter system set password_encryption_type=2;
# 修改后创建用户加密策略生效
  1. 密码复杂度:
  • 数据库参数password_policy(1,0) 1为校验密码复杂度
  • 包含大写字母(A-Z)的最少个数(password_min_uppercase)
  • 包含小写字母(a-z)的最少个数(password_min_lowercase)
  • 包含数字(0-9)的最少个数(password_min_digital)
  • 包含特殊字符的最少个数(password_min_special)
  • 密码的最小长度(password_min_length)
  • 密码的最大长度(password_max_length)
  • 至少包含上述四类字符中的三类
  • 不能和用户名、用户名倒写相同,本要求为非大小写敏感
  • 不能和当前密码、当前密码的倒写相同
  • 不能是弱口令
  1. 密码重用:用户修改密码时,只有超过不可重用天数(password_reuse_time)或不可重用次数(password_reuse_max)的密码才可以使用,也可以进行参数的修改
show password_reuse_max;  show password_reuse_time;
  1. 密码有效期限:数据库用户的密码都有密码有效期(password_effect_time),当达到密码到期提醒天数(password_notify_time)时,系统会在用户登录数据库时提示用户修改密码。
show password_effect_time;    show password_notify_time;
  1. 设置密码失效:确保用户首次登录进行密码修改。通过关键字:EXPIRED
CREATE USER joe PASSWORD "abc@1234" EXPIRED;

权限控制命令

  1. 用户授权:grant/revoke
\du+       
grant all privileges to test;
revoke all privileges from test;
将对象权限授权给用户或者角色:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO {[ GROUP ] role_name | PUBLIC}[,...][WITH GRANT OPTION];
  1. 审计:
功能参数名参数值
开启审计日志开关audit_enabledon/off
判断是否开启审计项的值audit_system_object(127)
dml语句审计audit_dml_state0/1
select语句审计开关:audit_dml_state_select0/1
  1. 查看审计结果:
select time,type,result,userid,username,database,detail_info from pg_query_audit(sysdate-1,sysdate) where database="test"
# 其中 type 代表审计类型,detail_info 代表审计详细信息,database代表数据库名称
  1. 通过审计查看账户被锁定:
select * from pg_qurey_audit(sysdate-1,sysdate) where type ='lock_user';   其中有客户端信息(在哪台机器被锁定的)
create user test2 identified by 'Gbase_123';
alter user test 2 account lock;
# 查询结果:test2用户是由用户gbase使用gsql客户端连接的本地IP进行(gsql@[local])锁定

或: 通过操作对象名称(object_name)查看该用户所有操作:
select * from pg_query_audit(sysdate-1,sysdate) where object_name='test2';
  1. 通过审计查看数据库定义语句:
select * from pg_query_audit(sysdate-1,sysdate) where type = 'ddl_database';
  1. 通过审计查看数据库创建表、修改表的语句:
开启审计值:alter system set audit_system_object=127; 
select * from pg_query_audit(sysdate-1,sysdate) where object_name='test2';
  1. 审计日志删除:
    自动删除:审计文件占用的磁盘空间或者审计文件的个数超过指定的最大值时,系统将删除最早的审计文件,并记录设计文件删除信息到审计日志中。
show audit_space_limit; 
手动删除:select pg_delete_audit('2023-03-28 22:13:45','2023-03-28 22:23:45');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值