1.访问控制
管理用户对数据库的访问控制权限,涵盖数据库系统权限和对象权限。
支持基于角色的访问控制机制,将角色和权限关联起来,通过将权限赋予给对应的角色,再将角色授予给用户,可实现用户访问控制权限管理。其中登录访问控制通过用户标识和认证技术来共同实现,而对象访问控制则基于用户在对象上的权限,通过对象权限检查实现对象访问控制。用户在为相关的数据库用户分配完成任务所需要的最小权限从而将数据库使用风险降到最低。
支持三权分立权限访问控制模型,数据库角色可分为系统管理员、安全管理员和审计管理员。其中安全管理员负责创建和管理用户,系统管理员负责授予和撤销用户权限,审计管理员负责审计所有用户的行为。
默认情况下,使用基于角色的访问控制模型。客户可通过设置参数来选择是否开启三权分立控制模型。
2.控制权和访问权分离
针对系统管理员用户,实现表对象的控制权和访问权分离,提高普通用户数据安全性,限制管理员对象访问权限。
该特性适用于如下场景,即对于有多个业务部门的企业,各部门间使用不同的数据库用户进行业务操作,同时存在同级别的数据库维护部门使用数据库管理员进行运维操作,业务部门希望在未经授权的情况下,管理员用户只能对各部门的数据进行控制操作(DROP、ALTER、TRUNCATE),但是不能进行访问操作(INSERT、DELETE、UPDATE、SELECT、COPY)。即针对管理员用户,表对象的控制权和访问权分离,提高用户数据的安全性。
系统管理员可以在创建用户时指定INDEPENDENT属性,表示该用户为私有用户。针对该用户的对象,数据库管理员(包含初始用户和其他管理员用户)在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。
3.数据库加密认证
采用基于RFC5802机制的口令加密认证方法。
加密认证过程中采用单向Hash不可逆加密算法PBKDF2,可有效防止彩虹攻击。
创建用户所设置的口令被加密存储在系统表中。整个认证过程中口令加密存储和传输,通过计算相应的hash值并与服务端存储的值比较来进行正确性校验。
统一加密认证过程中的消息处理流程,可有效防止攻击者通过抓取报文猜解用户名或者口令的正确性。
4.数据库审计
审计日志记录用户对数据库的启停、连接、DDL、DML、DCL等操作。审计日志机制主要增强数据库系统对非法操作的追溯及举证能力。
用户可以通过参数配置对哪些语句或操作记录审计日志。
审计日志记录事件的时间、类型、执行结果、用户名、数据库、连接信息、数据库对象、数据库实例名称和端口号以及详细信息。支持按起止时间段查询审计日志,并根据记录的字段进行筛选。
数据库安全管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。
5.网络通信安全特性
支持通过SSL加密客户端和服务器之间的通信数据,保证客户的客户端与服务器通信安全。
6.行级访问控制
行级访问控制特性将数据库访问粒度控制到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,按照行访问控制策略,读取到的结果可能是不同的。
用户可以在数据表创建行访问控制(Row Level Security)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。
行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。当前行级访问控制支持的SQL语句包括SELECT,UPDATE,DELETE。




