1、概述
数据库管理主要指对于数据库管理系统进行管理和维护的工作,目标是保障数据库的稳定性、安全性、数据一致性和高性能。管理的范围为如下几类:
- 对象管理:对象的设计和实现工作
- 安全管理:数据的安全访问和避免数据泄漏
- 备份恢复管理:数据定期备份和灾难发生时的及时恢复
- 性能管理:监控并优化影响数据库性能的相关因素,增加系统的吞吐量,尽可能的提高工作负载
- 环境管理:数据库的运行和维护
2、对象管理
数据库对象指数据库里用来存储和指向数据的各种概念和结构,常见的对象有表(table)、视图(view)、索引(index)、存储过程(store procedure)和函数(function)等。对于对象的管理过程就是指使用对象定义语言或者工具创建、修改或删除各种对象的管理过程。
3、安全管理
数据库的安全管理可以从三个层次看:
- 网络层次安全:包括加密技术、数字签名技术、防火墙技术、入侵检测技术等;
- 操作系统层次安全:包括服务器的安全和数据存储和传输方面的安全;
- 数据管理系统层次安全:包括数据库的加密、数据存取访问控制、安全审计多核数据备份等
3.1 概述
数据安全是为了保护数据免受未经授权的访问,防止重要信息的泄漏;避免因硬件或软件的错误导致数据的损失。
GaussDB提供的安全措施:
- 通过访问控制和SSL连接形成第一道防御,防止客户端仿冒、信息泄露及交互消息的篡改
- 通过用户权限管理形成第二道防御,主要对数据库服务器进行加固,防止权限提升等风险
- 通过安全审计管理形成第三道防御,对数据库所有操作做到有迹可查
3.2 统一身份认证(Identity and access Management)
身份认证是权限管理的基础服务,可以帮助用户安全的控制云服务和资源的访问权限。
IAM提供的主要功能包括:精细的权限管理、安全访问、二次认证、通过用户组批量管理用户权限、区域内资源隔离、联合身份认证、委托其他账号或者云服务管理资源、设置账号安全策略。
3.3 SSL加密通道(Secure Sockets Layer,安全套接字层)
指网络通信提供安全及数据完整性的安全协议。
SSL工作原理
- 对称加密算法:加密和解密使用相同的秘钥,特点是算法公开、加解密速度快、效率高
- 非对称加密算法:包含两个秘钥:公钥(publickey)和私钥(privatekey),公钥和私钥是一对,加密和解密使用不同的秘钥,特点是算法复杂度高、安全性更强、性能较对称加密差
- SSL握手阶段,使用非对称加密算法协商会话秘钥
- 加密通道建立后,使用对称加密算法对传输数据进行加解密
3.4 用户
用户主要用于使用工具连接数据库、访问数据库对象、执行SQL语句。
用户管理的常用语句有:
-- 创建用户
create user username identified by password
-- 密码需要使用单引号括起来!
-- 密码长度必须大于等于8个字符!
-- 修改用户密码
alter user username identified by password
-- 删除用户
drop user [if exists] username
3.5 角色
角色是一组命名的权限的集合,数据库使用角色进行权限组织及划分。
- 角色不属于任何用户
- 角色不能登录数据库和执行SQL语句操作
- 角色在系统中必须是唯一的
角色管理的相关功能有:
-- 创建角色
create role role_name
-- 删除角色
drop role role_name
用户、角色和权限的关系:
- 用户可定义角色,角色为多个权限的集合
- 角色赋予用户或其他角色,则用户或其他角色拥有了此角色的所有权限
- 角色的权限可以继承
3.6 授权
常用的语法有:
-- 授权
grant privilege_name on db/objects to grantee [with grant option]
-- 授予角色
grant role_name to grantee [with grant option]
-- 权限回收
revoke privilege_name on db/objects from revokee;
--角色回收
revoke role_name from revokee
权限、角色在不使用时需及时回收!
3.7 审计
审计可以帮助数据库管理员发现现存架构和是使用中的漏洞,审计内容包括:
- 访问及身份验证审计:数据库用户登入、登出的相关信息,如登入登出时间,连接方式及参数信息,登入途径等
- 用户与管理员审计:针对用户和管理员执行的活动进行分析和报告;
- 安全活动监控:记录数据库中任何未授权或者可疑的活动生成审计报告;
- 漏洞与威胁审计:发现数据库可能存在的漏洞,以及想要利用这些漏洞的“用户”。
4、备份恢复管理
4.1 概述
备份操作指将数据库中的数据和其他保证数据库正常运行的信息保存起来,当系统发生故障时可供数据库恢复使用。备份的对象包含但不限于数据本身、数据库对象、用户和对应权限、配置文件和定时任务等。所谓恢复指将数据库从故障状态恢复到可正常运行,并能够将数据恢复到可接受状态的活动。
灾难备份指为了灾难恢复而对数据、数据处理系统、网络系统、基础设施、专业技术能力和运行管理能力进行备份的过程。常用于衡量灾难恢复的指标有:
- RPO:恢复点目标,指系统和数据必须恢复到的时间点要求
- RTO:恢复时间目标,指系统从故障到必须恢复的时间要求
灾难恢复等级共分为六级,各级对应的成本和时间目标如下所示:
4.2 数据备份
数据备份按照不同的方式可分为如下类别:
- 根据备份数据的范围:全量备份、增量备份、差异备份
- 根据是否停库:热备、温备、冷备
- 根据备份内容:物理备份、逻辑备份
4.2.1 全量备份
全量备份指对某个指定时间点的所有数据和对应结构进行完全的备份,这种方式数据的完整性最高,安全性最好。但是,备份和恢复所需的时间会随着数据量的增加而明显增加,而且备份期间会影响数据库的性能。
4.2.2 差异备份 & 增量备份
差异备份和增量备份都不是对数据库完整的数据进行备份操作,差异备份是备份相对于上一次全量备份后发生变化的数据;增量备份是备份上一次备份后发生变化的数据。两者的差异如下所示:
4.2.3 热备 & 温备 & 冷备
热备就是指备份操作不影响数据库的正常运行;温备指备份期间数据库只能进行读操作,不能进行写操作;冷备指备份期间数据库的读写操作均无法进行。
4.2.4 物理备份 & 逻辑备份
物理备份和逻辑备份区别在于两者备份的内容不同,物理备份直接将数据库所对应的数据文件甚至整个磁盘进行备份,逻辑备份是只备份数据库中的数据。两者详细的区别如下所示:
5、性能管理
性能管理的意义在于,通过对资源的有效管理确保数据库系统在高访问请求场景下,仍能满足用户的性能要求。具体来说,性能管理包括实时的性能监控和系统历史性能数据跟踪两方面。
数据库常见的性能指标有吞吐量、响应时间等,对于OLTP操作来说,希望能在可接受的响应时间基础上提供尽可能高的吞吐量;对于OLAP操作来说,希望能在有限的资源内尽可能的缩短响应时间。
性能管理需要采集的数据范围,包括但不限于:
- CPU使用数据;
- 空间使用率;
- 使用数据库系统的用户和角色;
- 心跳查询的响应时间;
- 提交到数据库的SQL为基本单元的性能数据;
- 数据库工具提交的作业相关的性能数据(如加载,卸载,备份,恢复等)。