为了保证数据库系统的安全性,DM数据库采用“三权分立”或“四权分立”的安全机制,“三权分立”时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,“四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。
一、 DM系统管理员的类型
在现实生活中,任何一个系统如果将所有的权利都赋予给某一个人,而不加以监督和控制,势必会产生权利滥用的风险。从数据库安全角度出发,一个大型的数据库系统有必要将数据库系统的权限分配给不同的角色来管理,并且各自偏重于不同的工作职责,使之能够互相限制和监督,从而有效保证系统的整体安全。
DM数据库实现了B1级安全特性。“三权分立”的安全机制,将系统管理员分数据库管理员、数据库安全员和数据库审计员三类。在安装过程中,DM数据库会预设数据库管理员账号SYSDBA、数据库安全员账号SYSSSO和数据库审计员账号SYSAUDITOR,其缺省口令都与用户名一致。“四权分立”的安全机制,将系统管理员分数据库管理员、数据库对象操作员、数据库安全员和数据库审计员四类,在“三权分立”的基础上,新增数据库对象操作员账户SYSDBO,其缺省口令为SYSDBO。用户需要在安装过程中或者安装完毕后立即修改缺省口令,避免因口令泄漏造成的安全问题。
1. 数据库管理员(DBA)
“三权分立”的安全机制,每个DM数据库至少需要一个数据库管理员来管理,负责评估数据库运行所需的软、硬件环境、安装和升级DM数据库、配置DM数据库参数、创建主要的数据库存储结构(表空间)和对象(如表、视图、索引、角色、用户等)、监控和优化数据库性能、数据导入导出以及数据库的备份和恢复等。
“三权分立”时数据库管理员既可进行系统管理和维护工作,也可对数据内容进行增删查改动作。根据国产数据库军事使用要求,数据库管理员只能进行系统管理和维护工作,不能对数据内容进行增删查改,数据库应用人员则可操作数据内容,而不能管理和维护系统。
“四权分立”的安全机制,在原有“三权分立”基础上调整自主访问控制权限,只具有“三权分立”中DBA角色预设的一部分与数据库管理相关的明确的数据库权限,如数据库创建、备份、还原和校验等,具体见《DM8 安全管理》。
2. 数据库安全员(SSO)
对于很多对安全性要求不高的系统来说,C2级安全特性已经能够工作得很好,此时不需要考虑通过数据库安全员来进一步加强系统的安全机制。但是在很多大型的系统中,安全性还是至关重要的,有必要由安全员来制定安全策略,强化系统安全机制,此时数据库安全员的主要任务就是制定安全策略,定义新的数据库安全员,设置系统的安全等级、范围和组,并为主、客体定义安全标记,从而全面提升系统安全性。
3. 数据库审计员(AUDITOR)
数据库审计员可以设置要审计的对象和操作、定义新的数据库审计员、查看和分析审计记录。通过设置审计,几乎可以跟踪任何人在系统内执行的任何操作,为事后追查提供便利。
4. 数据库对象操作员(DBO)
数据库对象操作员是“四权分立”新增加的一类用户,可以创建数据库对象,并对自己拥有的数据库对象(表、视图、存储过程、序列、包、外部链接)具有所有的对象权限并可以授出与回收,但其无法管理与维护数据库对象。
需要说明的是,在DM数据库中有一个特殊的预定义用户“SYS”,此用户仅用于保存系统内部对象,并非数据库管理员,也无法进行登录。
二、 数据库管理员的任务
每个数据库至少需要一个DBA来管理,DBA可能是一个团队,也可能是一个人。在不同的公司,数据库管理员的职责可能也会有比较大的区别,总体而言,数据库管理员的职责主要包括以下任务。
1. 评估数据库服务器所需的软、硬件运行环境
通常情况下,DBA不会直接配置除数据库之外的软、硬件环境,不过在某些情况下还是需要。即便不用负责配置其他软、硬件,还是应该负责为软、硬件的选型提供指南和规范,以便最终配置能够提供满足业务需要的最优级别的性能、可靠性和可扩展性,同时保证总体费用在预算范围内。
作为DBA,需要结合实际应用负载、总体费用、性能预期目标等来评估可供选择的软、硬件运行环境。其中实际应用负载和总体费用基本上都是确定的,DBA的目标就是保证在负载和费用基本不变的情况下,实现系统总体性能的最优化。DBA主要考虑的因素包括:
- 操作系统/中间件等通用软件的稳定性、性能、安全性;
- 处理器的个数和性能;
- 内存容量和性能;
- 网络带宽;
- 存储容量和读写性能;
- HBA卡传输性能。
2. 安装和升级DM 服务器
作为数据库管理员,应负责安装DM数据库服务器软件。具体的安装配置步骤请参考《DM8安装手册》。需要注意的是,和所有软件一样,应先在测试系统上完成安装,这样可以确保不会影响到生产系统。
随着DM数据库的发展,会在DM数据库发布后提供服务包和安全更新。正确地安装服务包和安全更新是至关重要的任务,它影响到系统的稳定性、性能和安全。DBA需要清楚地了解服务包和安全更新对现有系统的影响,然后考虑是否进行升级。是在生产系统上应用新的升级包之前,必须在测试环境下进行确认。
3. 数据库结构设计
在安装DM数据库之后,DBA就可以开始进行数据库结构设计。数据库的结构设计直接影响系统的综合性能,是DBA最为重要的工作任务之一。
DBA可以依次参考第7章来创建和配置DM数据库,参考第8章来启动和关闭数据库,参考第16章来实施计划好的数据库存储结构部署工作,参考第9-15章、第18-21章为每个对象规划数据库对象和存储特性的相关性的设计。通过在创建对象之前规划每个对象和它的物理存储之间的关系,可以直接影响数据库的性能。
4. 监控和优化数据库的性能
监控和优化数据库的性能是数据库管理员的核心职责之一。对系统进行监控有助于在问
题发生时识别它们,性能优化则有助于消除那些问题并防止它们发生。监视长时间运行的查询有助于发现可以改进的领域,如增加索引、重写查询、改进应用程序逻辑等,还可以发现
由于缺少内存,内存分配不合理而导致的性能降低,以便调整 DM 数据库的内存使用参数,或为服务器增加更多的内存。DBA需要提供对于各种问题的解决方案,努力优化 DM 数据库的各个方面,必要时,可以直接拨打 DM 数据库产品售后服务热线来寻求帮助。
5. 计划和实施备份与故障恢复
即便是最好、最稳定的系统也会存在意外,如断电、硬件故障等。DBA 必须对各种可能的故障和计划中的停机提供解决方案。一般来说,系统 的 可靠性与成本之间存在着类似线 性的关系,越是可靠的解决方案其整体成本必然也会更高DBA必须在企业 限定的成本内 制定可行的可靠性解决方案。DM数据库提供了最基本的故障恢复、备份与还原功能,另外还提供了数据守护、数据复制、共享存储集群等高可靠、高可用解决方案。 DBA 可参考本书第五部分、《 DM8 备份与还原》、《 DM8 数据守护与读写分离集群 V 3.0 》和《 DM8 共享存储集群》 来选择合适的解决方案 。
三、数据库安全员的任务
有些应用对于安全性有着很高的要求,传统的由DBA一人拥有所有权限并且承担所有职责的安全机制可能无法满足企业实际需要,此时数据库安全员和数据库审计员两类角色和 用户就显得异常重要,它们对于限制和监控数据库管理员的所有行为都起着至关重要的作用。
数据库安全员的主要职责就是制定并应用安全策略强化系统安全机制。数据库安全员SYSSSO 是 DM 数据库初始化的时候就已经创建好的,可以以该用户登录到 DM 数据库来创建新的数据库安全员。SYSSSO或者新的数据库安全员都可以制定自己的安全策略,在安全策略中定义安全级别、范围和组,然后基于定义的安全级别、范围和组来创建安全标记,并将安全标记分别应用到主体(用户)和客体(表)以便启用强制访问控制功能。数据库 安 全 员不能对用户数据进行增、删、改 、查,也不能执行普通的DDL操作 ,他们只负责 制 定安全机制 ,将合适的安全标记应用到主体和客体,通过这种方式可以有效的对 DBA 的权限进行限制,DBA 此后就不能直接访问添加有安全标记的数据,除非安全员给 DBA 也设定了与之匹配的安全标记,DBA的权限受到了有效的约束,详细的安全特性介绍请参考 官方手册。
四、数据库审计员的任务
我们可以想象一下,某个企业内部DBA 非常熟悉公司内部ERP系统的数据库设计,该
系统包括了员工工资表,里面记录了所有员工的工资,公司的出纳通过查询系统内部员工 工资表来发放工资。传统的DBA集所有权利于一身,可以很容易修改工资表,从而导致公司工资账务错乱。为了预防该问题,可以采用前面数据库安全员制定安全策略的方法,避免 DBA或者其他数据库用户具有访问该表的权限。为了能够及时找到DBA或者其他用户的非法操作,在DM数据库中还可以在系统建设初期,由数据库审计员(SYSAUDITOR或者其他由SYSAUDITOR创建的审计员)来设置审计策略(包括审计对象和操作),在需要时,数据库审计员可以查看审计记录,及时分析并查找出幕后真凶。
从上面的介绍我们也可以看到,在 D M 数 据 库 中,审计员的主要职责就是创建和 删除数据库审计员,设置取消对数据库对象和操作的审计设置,查看和分析审计记录等。关于审计的详细介绍,请参考官方相关说明。
知识来源:https://eco.dameng.com