6. 数据库安全性与备份
在数据库管理中,安全性和备 份是确保数据保护与可用性的重要环节。保障数据的机密性、完整性和可用性,并且在发生故障或攻击时能够及时恢复,是数据库运维的关键任务之一。
6.1 用户权限管理
用户权限管理通过控制用户访问数据库的能力,确保数据的安全。通过合理分配权限,防止未经授权的用户篡改、删除或泄露敏感数据。
6.1.1 用户创建与权限管理(GRANT, REVOKE)
数据库管理员可以创建用户并分配权限,以限制用户能执行的操作。通过 GRANT 赋予权限,通过 REVOKE 撤销权限。
- CREATE USER:用于创建新用户。
- GRANT:赋予用户特定的操作权限,例如查询、插入、更新等。
- REVOKE:撤销某个用户的权限。
创建用户:
CREATE USER 'john'@'localhost' IDENTIFIED BY 'password123';
该命令创建了一个用户名为 john 的用户,并设置了密码。
授予权限:
GRANT SELECT, INSERT ON company_db.* TO 'john'@'localhost';
这里,授予用户 john 对 company_db 数据库的所有表执行 SELECT 和 INSERT 操作的权限。
撤销权限:
REVOKE INSERT ON company_db.* FROM 'john'@'localhost';
该命令撤销了用户 john 的 INSERT 权限。
6.1.2 数据库角色与权限分配
数据库系统支持创建角色来简化权限管理。角色是一组权限的集合,通过为用户分配角色,可以让多个用户共享同样的权限设置。
创建角色:
CREATE ROLE read_only;
为角色分配权限:
GRANT SELECT ON company_db.* TO read_only;
为用户分配角色:
GRANT read_only TO 'john'@'localhost';
这种方法简化了对大量用户进行权限管理的复杂性。
6.2 数据加密与审计
为了防止未经授权的访问和数据泄露,数据库安全性的重要策略之一是加密敏感数据。数据库的审计功能则帮助管理员跟踪和记录数据库的所有活动,尤其是在数据泄露和异常访问的情况下,能够提供详细的日志。