Db2 简明教程

DB2 - Database Security

本章介绍数据库安全性。

Introduction

可以通过两种不同的安全控制模式管理 DB2 数据库和函数:

Authentication

认证是确认用户仅根据他授权执行的活动权限登录的过程。用户认证可以在操作系统级别或数据库级别本身执行。通过使用诸如视网膜和指纹等生物特征认证工具来防止数据库遭受黑客或恶意用户的破坏。

可以在 db2 数据库系统外部管理数据库安全性。以下是一些类型的安全认证流程:

  1. 基于操作系统的认证。

  2. 轻量级目录访问协议 (LDAP)

对于 DB2,安全服务作为独立产品成为操作系统的一部分。对于认证,它需要两个不同的凭据,它们分别是用户 ID 或用户名和密码。

Authorization

您可以在 DB2 数据库系统中访问 DB2 数据库及其功能,这些功能由 DB2 数据库管理器管理。授权是由 DB2 数据库管理器管理的一个过程。管理器获取有关当前经过认证用户的的信息,以指示用户可以执行或访问哪些数据库操作。

以下是可以用于授权的不同权限方式:

Primary permission :直接授予授权 ID。

Secondary permission :如果用户是成员,则授予组和角色

Public permission :公开授予所有用户。

Context-sensitive permission :授予受信任上下文角色。

可以根据以下类别向用户授予授权:

  1. System-level authorization

  2. System administrator [SYSADM]

  3. System Control [SYSCTRL]

  4. System maintenance [SYSMAINT]

  5. System monitor [SYSMON]

权威机构对实例级别的功能提供控制。权威机构会提供组权限,以控制维护和权限操作。例如,数据库和数据库对象。

  1. Database-level authorization

  2. Security Administrator [SECADM]

  3. Database Administrator [DBADM]

  4. Access Control [ACCESSCTRL]

  5. Data access [DATAACCESS]

  6. SQL administrator. [SQLADM]

  7. Workload management administrator [WLMADM]

  8. Explain [EXPLAIN]

权限机构在数据库内部提供控制。数据库的其他权限包括 LDAD 和 CONNECT。

  1. Object-Level Authorization :对象级别授权涉及在对象上执行操作时验证权限。

  2. Content-based Authorization :用户可以使用基于标签的访问控制 [LBAC] 对特定表上的各个行和列拥有读写访问权限。

DB2 表和配置文件用于记录与授权名称相关联的权限。当用户尝试访问数据时,记录的权限会验证以下权限:

  1. 用户的授权名称

  2. 用户所属的组

  3. 直接授予用户或间接授予组的角色

  4. 通过受信任上下文获得的权限。

在使用 SQL 语句时,DB2 授权模型会考虑以下权限的组合:

  1. 授予与 SQL 语句相关联的主授权 ID 的权限。

  2. 与 SQL 语句关联的辅助授权 ID。

  3. Granted to PUBLIC

  4. 授予受信任上下文的权限。

Instance level authorities

让我们探讨一些与实例相关的权限。

System administration authority (SYSADM)

这是实例级别最高级别的管理权限。拥有 SYSADM 权限的用户可以在实例内执行一些数据库和数据库管理器命令。拥有 SYSADM 权限的用户可以执行以下操作:

  1. Upgrade a Database

  2. Restore a Database

  3. 更新数据库管理器配置文件。

System control authority (SYSCTRL)

这是系统控制权限中最高级别。它用于针对数据库管理器实例及其数据库执行维护和实用操作。这些操作可能会影响系统资源,但它们不允许直接访问数据库中的数据。

拥有 SYSCTRL 权限的用户可以执行以下操作:

  1. 更新数据库、节点或分布式连接服务 (DCS) 目录

  2. 强制用户退出系统级

  3. 创建或放弃数据库级

  4. 创建、更改或放弃表空间

  5. Using any table space

  6. Restoring Database

System maintenance authority (SYSMAINT)

它是系统控制权限的第二级。它提供对数据库管理器实例及其数据库执行维护和实用操作的功能。这些操作影响系统资源,但不会允许直接访问数据库中的数据。该权限旨在让用户维护包含敏感数据的数据库管理器实例中的数据库。

只有具有 SYSMAINT 或更高级别系统权限的用户才能执行以下任务:

  1. Taking backup

  2. Restoring the backup

  3. Roll forward recovery

  4. Starting or stopping instance

  5. Restoring tablespaces

  6. Executing db2trc command

  7. 在实例级别用户或数据库级别用户的情况下,获取系统监视器快照。

具有 SYSMAINT 的用户可以执行以下任务:

  1. 查询表空间的状态

  2. Updating log history files

  3. Reorganizing of tables

  4. 使用 RUNSTATS(收集目录统计信息)

System monitor authority (SYSMON)

有了此权限,用户可以监视或获取数据库管理器实例或其数据库的快照。SYSMON 权限允许用户运行以下任务:

  1. 获取数据库管理器监视器开关

  2. GET MONITOR SWITCHES

  3. GET SNAPSHOT

  4. 列出活动数据库列表列出应用程序列出数据库分区组列出 DCS 应用程序列出程序包列出表列出表空间容器列出表空间列出实用程序

  5. RESET MONITOR

  6. UPDATE MONITOR SWITCHES

Database authorities

每个数据库权限都持有执行数据库上某些操作的授权 ID。这些数据库权限与特权不同。以下是一些数据库权限的列表:

ACCESSCTRL :允许授予和撤消所有对象特权和数据库权限。

BINDADD :允许在数据库中创建新程序包。

CONNECT :允许连接到数据库。

CREATETAB :允许在数据库中创建新表。

CREATE_EXTERNAL_ROUTINE :允许创建应用程序和数据库用户使用的过程。

DATAACCESS :允许访问存储在数据库表中的数据。

DBADM :充当数据库管理员。它授予所有其他数据库权限,但 ACCESSCTRL、DATAACCESS 和 SECADM 除外。

EXPLAIN :允许解释查询计划,而不要求他们拥有访问表中数据的权限。

IMPLICIT_SCHEMA :允许用户通过使用 CREATE 语句创建对象来隐式创建架构。

LOAD :允许将数据加载到表中。

QUIESCE_CONNECT :允许在数据库静默(暂时禁用)时访问数据库。

SECADM :允许充当数据库的安全管理员。

SQLADM :允许监控和调整 SQL 语句。

WLMADM :允许充当工作负载管理员

Privileges

SETSESSIONUSER

授权标识符权限涉及授权标识符上的操作。只有一个称为 SETSESSIONUSER 权限的权限。它可以授予用户或组,并允许会话用户将其身份切换到授予了权限的任何授权标识符。此权限由用户 SECADM 权限授予。

Schema privileges

此权限涉及对数据库中架构的操作。架构的所有者具有操作架构对象(如表、视图、索引、程序包、数据类型、函数、触发器、过程和别名)的所有权限。可以向用户、组、角色或 PUBLIC 授予以下权限中的任何一种:

  1. CREATEIN :允许在架构中创建对象

  2. ALTERIN :允许在架构中修改对象。

DROPIN

这允许删除架构中的对象。

Tablespace privileges

这些权限涉及数据库中表空间上的操作。可以向用户授予表空间的 USE 权限。然后这些权限允许他们在表空间中创建表。当创建表空间时,权限所有者可以使用具有 GRANT OPTION 命令的 USE 权限授予权限。而 SECADM 或 ACCESSCTRL 权限具有表空间上 USE 权限的权限。

Table and view privileges

用户必须对数据库有 CONNECT 权限才能使用表和视图权限。表和视图的权限如下所述:

CONTROL

它提供了表或视图的所有权限,包括删除和授予、撤销向用户授予的单个表权限。

ALTER

它允许用户修改表。

DELETE

它允许用户从表或视图中删除行。

INDEX

它允许用户将行插入到表或视图中。它还可以运行导入实用程序。

REFERENCES

它允许用户创建并删除外键。

SELECT

它允许用户从表或视图中检索行。

UPDATE

它允许用户在表、视图中更改条目。

Package privileges

用户必须对数据库具有 CONNECT 权限。包是一个数据库对象,其中包含数据库管理器以在特定应用程序中以最有效方式访问数据的信息。

CONTROL

它为用户提供了重新绑定、删除或执行包的权限。拥有此权限的用户将被授予 BIND 和 EXECUTE 权限。

BIND

它允许用户绑定或重新绑定该包。

EXECUTE

允许执行包。

Index privileges

此权限自动在索引上接收 CONTROL 权限。

Sequence privileges

序列会自动在序列上接收 USAGE 和 ALTER 权限。

Routine privileges

它涉及数据库中例程(例如函数、过程和方法)的操作。