数据库安全概述
KaiwuDB 提供了一系列的安全功能,确保用户数据的保密性、完整性和可用性。
- 加密传输:KaiwuDB 支持使用 TLS 和 TLCP 协议对客户端和服务器之间的数据传输进行加密,确保数据在传输过程中不被窃取或篡改,提高了数据传输的安全性。
- 身份鉴别:KaiwuDB 支持多种认证方式,确保数据库访问的安全性。
- 基于密码的身份鉴别:用户在登录时需要提供正确的用户名和密码,系统将验证其凭证以允许访问。
- 基于证书的身份鉴别:KaiwuDB 支持用户通过系统参数配置对指定用户和指定 IP 地址范围配置基于证书的认证规则,实现对主机的访问的精确管理。
- 基于密码和证书的双因子身份鉴别:KaiwuDB 支持用户通过系统参数配置对指定用户和指定 IP 地址范围配置基于证书和密码的认证规则,实现对主机的访问的精确管理。
- GSSAPI 身份鉴别:KaiwuDB 支持通过调用 GSSAPI 接口,使用 Kerberos 协议实现用户身份鉴别以及安全的登录和通信。
- 登录状态监控:KaiwuDB 提供登录状态监控功能,启用该功能后,当前用户和管理员可以通过
SHOW LOGIN STATUS
语句查询用户的登录状态信息,包括当前登录记录、历史登录信息和登录失败记录,便于监控用户登录行为和识别异常访问。 - 用户与权限管理:KaiwuDB 支持灵活的权限管理机制,为用户提供了多层次、多维度的权限管理功能,具体包括:
- 基于角色的权限管理:管理员可以创建不同的角色,并为每个角色分配特定的权限。通过将用户和角色分配到适当的角色中,实现对用户权限的管理,从而简化权限管理流程,确保安全性。
- 细粒度的对象级权限控制:KaiwuDB 允许管理员对数据库中的对象,例如数据库、表,进行细粒度的权限控制。管理员可以精确地指定用户或角色可以访问的数据库对象,以及可以执行的操作类型。
- 动态权限调整:管理员可以随时根据需要调整用户或角色的权限,包括增加、修改或撤销权限,及时响应业务需求或安全策略的变化,确保系统的灵活性和安全性。
- 密码管理:为了保护用户密码的安全,KaiwuDB 支持以下密码管理能力:
- 配置密码复杂度策略:支持用户设置密码复杂度规则,检查用户密码复杂度,防止出现空密码、弱密码。
- 配置密码有效期:支持用户通过 SQL 语句配置和查看密码的有效期。
- 配置密码连续错误登录失败处理策略:连续多次密码错误导致登录失败后,临时锁定用户,限制该用户继续尝试登录。
- 数据加密:KaiwuDB 提供多层次的数据加密功能,确保数据在存储和传输过程中都能得到有效保护,防止未授权访问或数据泄露。
- 内部数据传输加密:在安全模式下,各节点间的内部数据传输都会进行加密,确保数据在传输过程中不被窃取或篡改。
- 数据加密存储:KaiwuDB 支持对存储在硬盘上的数据进行加密,以防止数据泄露或未授权访问。用户可以通过配置加密存储路径、加密密钥和加密算法来实现数据的加密存储。
- 审计管理:审计管理是 KaiwuDB 安全管理的核心组成部分。通过全面记录数据库活动和用户操作,KaiwuDB 能够帮助用户实时监控数据库的安全状态,并生成详尽的审计日志。这些审计日志可以帮助用户追溯安全事件的发生原因,加强对数据库的监控和管理。
- SQL 注入检测:通过将输入数据根据定义好的特征码进行转换,生成 SQL 注入的识别特征或指纹,然后在特征库中进行匹配。如果匹配成功,就意味着检测到了 SQL 注入的可能性,从而高效、准确地对可能存在的恶意代码进行拦截。
- 访问控制:访问控制是数据库安全管理的重要组成部分,旨在通过限制用户对数据库资源的访问权限,禁止非法用户或进程访问数据库,确保只有被授权的用户才能访问数据库资源并对表、视图、列等特定数据对象执行合法的操作。访问控制也可以记录用户操作,便于后续追查。基于实现的基本理念不同,KaiwuDB 支持以下两种访问控制:
- 自主访问控制(Discretionary Access Control,DAC):自主访问控制是一种由对象所有者自主决定权限分配的安全模型。对象(如表、视图)的创建者默认成为其所有者,拥有对该对象权限的绝对控制权,可自由授予或撤销其他用户的访问权限。
- 强制访问控制(Mandatory Access Control,MAC):管理员依据业务需要,创建合适的标记组件和标记并将标记应用于主体和客体,从而可以根据主体和客体标记的密级和范围来实现强制访问控制。