- DB2 教程
- 首页
- DB2 - 简介
- DB2 - 服务器安装
- DB2 - 实例
- DB2 - 数据库
- DB2 - 缓冲池
- DB2 - 表空间
- DB2 - 存储组
- DB2 - 模式
- DB2 - 数据类型
- DB2 - 表
- DB2 - 别名
- DB2 - 约束
- DB2 - 索引
- DB2 - 触发器
- DB2 - 序列
- DB2 - 视图
- DB2 与 XML
- DB2 - 备份和恢复
- DB2 - 数据库安全
- DB2 - 角色
- DB2 - LDAP
- DB2 有用资源
- DB2 - 问题和解答
- DB2 - 快速指南
- DB2 - 有用资源
- DB2 - 讨论
DB2 - 数据库安全
本章描述数据库安全。
介绍
DB2 数据库和功能可以通过两种不同的安全控制模式进行管理
- 身份验证
- 授权
身份验证
身份验证是确认用户登录的过程,仅符合其被授权执行的活动的权限。用户身份验证可以在操作系统级别或数据库级别本身执行。通过使用生物识别身份验证工具(例如视网膜和指纹)来防止黑客或恶意用户访问数据库。
数据库安全可以从 DB2 数据库系统外部进行管理。以下是一些安全身份验证过程的类型
- 基于操作系统身份验证。
- 轻量级目录访问协议 (LDAP)
对于 DB2,安全服务作为单独的产品是操作系统的一部分。对于身份验证,它需要两个不同的凭据,即用户 ID 或用户名和密码。
授权
您可以访问 DB2 数据库及其在 DB2 数据库系统中的功能,该系统由 DB2 数据库管理器管理。授权是由 DB2 数据库管理器管理的过程。管理器获取有关当前已验证用户的的信息,该信息指示用户可以执行或访问哪些数据库操作。
以下是授权可用的不同权限方式
主要权限:直接授予授权 ID。
辅助权限:如果用户是成员,则授予组和角色。
公共权限:公开授予所有用户。
上下文相关权限:授予受信任的上下文角色。
可以根据以下类别授予用户授权
- 系统级授权
- 系统管理员 [SYSADM]
- 系统控制 [SYSCTRL]
- 系统维护 [SYSMAINT]
- 系统监视器 [SYSMON]
权限提供对实例级功能的控制。权限提供给组特权,以控制维护和授权操作。例如,数据库和数据库对象。
- 数据库级授权
- 安全管理员 [SECADM]
- 数据库管理员 [DBADM]
- 访问控制 [ACCESSCTRL]
- 数据访问 [DATAACCESS]
- SQL 管理员。[SQLADM]
- 工作负载管理管理员 [WLMADM]
- 解释 [EXPLAIN]
权限提供数据库内的控制。数据库的其他权限包括 LDAD 和 CONNECT。
- 对象级授权:对象级授权涉及在对对象执行操作时验证权限。
- 基于内容的授权:用户可以使用基于标签的访问控制 [LBAC] 对特定表上的各个行和列具有读写访问权限。
DB2 表和配置文件用于记录与授权名称关联的权限。当用户尝试访问数据时,记录的权限会验证以下权限
- 用户的授权名称
- 用户属于哪个组
- 直接或间接授予用户或组的哪些角色
- 通过受信任的上下文获得的权限。
在使用 SQL 语句时,DB2 授权模型会考虑以下权限的组合
- 授予与 SQL 语句关联的主授权 ID 的权限。
- 与 SQL 语句关联的辅助授权 ID。
- 授予 PUBLIC
- 授予受信任的上下文角色。
实例级权限
让我们讨论一些与实例相关的权限。
系统管理权限 (SYSADM)
它是实例级别最高的管理权限。具有 SYSADM 权限的用户可以在实例中执行某些数据库和数据库管理器命令。具有 SYSADM 权限的用户可以执行以下操作
- 升级数据库
- 恢复数据库
- 更新数据库管理器配置文件。
系统控制权限 (SYSCTRL)
它是系统控制权限中的最高级别。它提供对数据库管理器实例及其数据库执行维护和实用程序操作的功能。这些操作可能会影响系统资源,但它们不允许直接访问数据库中的数据。
具有 SYSCTRL 权限的用户可以执行以下操作
- 更新数据库、节点或分布式连接服务 (DCS) 目录
- 强制用户退出系统级
- 创建或删除数据库级
- 创建、更改或删除表空间
- 使用任何表空间
- 恢复数据库
系统维护权限 (SYSMAINT)
它是系统控制权限的第二级。它提供对数据库管理器实例及其数据库执行维护和实用程序操作的功能。这些操作会影响系统资源,而无需允许直接访问数据库中的数据。此权限专为用户维护包含敏感数据的数据库管理器实例中的数据库而设计。
只有具有 SYSMAINT 或更高级别系统权限的用户才能执行以下任务
- 备份
- 恢复备份
- 前滚恢复
- 启动或停止实例
- 恢复表空间
- 执行 db2trc 命令
- 在实例级用户或数据库级用户的情况下获取系统监视器快照。
具有 SYSMAINT 权限的用户可以执行以下任务
- 查询表空间的状态
- 更新日志历史文件
- 表的重新组织
- 使用 RUNSTATS(收集目录统计信息)
系统监视器权限 (SYSMON)
使用此权限,用户可以监视或获取数据库管理器实例或其数据库的快照。SYSMON 权限使用户能够运行以下任务
- 获取数据库管理器监视器开关
- 获取监视器开关
- 获取快照
- 列表
- 列出活动数据库
- 列出应用程序
- 列出数据库分区组
- 列出 DCS 应用程序
- 列出包
- 列出表
- 列出表空间容器
- 列出表空间
- 列出实用程序
- 重置监视器
- 更新监视器开关
数据库权限
每个数据库权限都持有授权 ID 以对数据库执行某些操作。这些数据库权限与特权不同。以下是某些数据库权限的列表
ACCESSCTRL:允许授予和撤销所有对象特权和数据库权限。
BINDADD:允许在数据库中创建新的包。
CONNECT:允许连接到数据库。
CREATETAB:允许在数据库中创建新表。
CREATE_EXTERNAL_ROUTINE:允许创建应用程序和数据库用户可使用的过程。
DATAACCESS:允许访问存储在数据库表中的数据。
DBADM:充当数据库管理员。它授予除 ACCESSCTRL、DATAACCESS 和 SECADM 之外的所有其他数据库权限。
EXPLAIN:允许解释查询计划,而无需他们拥有访问表中数据的权限。
IMPLICIT_SCHEMA:允许用户通过使用 CREATE 语句创建对象隐式地创建模式。
LOAD:允许将数据加载到表中。
QUIESCE_CONNECT:允许在数据库处于静止状态(暂时禁用)时访问数据库。
SECADM:允许充当数据库的安全管理员。
SQLADM:允许监视和调整 SQL 语句。
WLMADM:允许充当工作负载管理员
特权
SETSESSIONUSER
授权 ID 特权涉及对授权 ID 的操作。只有一个特权,称为 SETSESSIONUSER 特权。它可以授予用户或组,并且允许会话用户将身份切换到授予特权的任何授权 ID。此特权由用户 SECADM 权限授予。
模式特权
此特权涉及数据库中模式的操作。模式的所有者拥有所有操作模式对象(如表、视图、索引、包、数据类型、函数、触发器、过程和别名)的权限。可以向用户、组、角色或 PUBLIC 授予以下任何特权
- CREATEIN:允许在模式中创建对象
- ALTERIN:允许修改模式中的对象。
DROPIN
这允许删除模式中的对象。
表空间特权
这些特权涉及数据库中表空间的操作。可以向用户授予表空间的 USE 特权。然后,这些特权允许他们在表空间中创建表。当创建表空间时,特权所有者可以使用 WITH GRANT OPTION 命令在表空间上授予 USE 特权。并且 SECADM 或 ACCESSCTRL 权限有权在表空间上使用 USE 特权。
表和视图特权
用户必须对数据库具有 CONNECT 权限才能使用表和视图特权。表和视图的特权如下所示
CONTROL
它提供表或视图的所有特权,包括删除和授予,撤销对用户的各个表特权。
ALTER
它允许用户修改表。
DELETE
它允许用户从表或视图中删除行。
INDEX
它允许用户将行插入表或视图。它还可以运行导入实用程序。
REFERENCES
它允许用户创建和删除外键。
SELECT
它允许用户从表或视图中检索行。
UPDATE
它允许用户更改表、视图中的条目。
包特权
用户必须对数据库具有 CONNECT 权限。包是一个数据库对象,其中包含数据库管理器的信息,以便以最有效的方式为特定应用程序访问数据。
CONTROL
它为用户提供重新绑定、删除或执行包的特权。具有此特权的用户会被授予 BIND 和 EXECUTE 特权。
BIND
它允许用户绑定或重新绑定该包。
EXECUTE
允许执行包。
索引特权
此特权会自动接收索引上的 CONTROL 特权。
序列特权
序列会自动接收序列上的 USAGE 和 ALTER 特权。
例程特权
它涉及数据库中例程(如函数、过程和方法)的操作。
