Db2 简明教程
DB2 - Database Security
本章介绍数据库安全性。
Introduction
可以通过两种不同的安全控制模式管理 DB2 数据库和函数:
Authentication
认证是确认用户仅根据他授权执行的活动权限登录的过程。用户认证可以在操作系统级别或数据库级别本身执行。通过使用诸如视网膜和指纹等生物特征认证工具来防止数据库遭受黑客或恶意用户的破坏。
可以在 db2 数据库系统外部管理数据库安全性。以下是一些类型的安全认证流程:
-
基于操作系统的认证。
-
轻量级目录访问协议 (LDAP)
对于 DB2,安全服务作为独立产品成为操作系统的一部分。对于认证,它需要两个不同的凭据,它们分别是用户 ID 或用户名和密码。
Authorization
您可以在 DB2 数据库系统中访问 DB2 数据库及其功能,这些功能由 DB2 数据库管理器管理。授权是由 DB2 数据库管理器管理的一个过程。管理器获取有关当前经过认证用户的的信息,以指示用户可以执行或访问哪些数据库操作。
以下是可以用于授权的不同权限方式:
Primary permission :直接授予授权 ID。
Secondary permission :如果用户是成员,则授予组和角色
Public permission :公开授予所有用户。
Context-sensitive permission :授予受信任上下文角色。
可以根据以下类别向用户授予授权:
-
System-level authorization
-
System administrator [SYSADM]
-
System Control [SYSCTRL]
-
System maintenance [SYSMAINT]
-
System monitor [SYSMON]
权威机构对实例级别的功能提供控制。权威机构会提供组权限,以控制维护和权限操作。例如,数据库和数据库对象。
-
Database-level authorization
-
Security Administrator [SECADM]
-
Database Administrator [DBADM]
-
Access Control [ACCESSCTRL]
-
Data access [DATAACCESS]
-
SQL administrator. [SQLADM]
-
Workload management administrator [WLMADM]
-
Explain [EXPLAIN]
权限机构在数据库内部提供控制。数据库的其他权限包括 LDAD 和 CONNECT。
-
Object-Level Authorization :对象级别授权涉及在对象上执行操作时验证权限。
-
Content-based Authorization :用户可以使用基于标签的访问控制 [LBAC] 对特定表上的各个行和列拥有读写访问权限。
DB2 表和配置文件用于记录与授权名称相关联的权限。当用户尝试访问数据时,记录的权限会验证以下权限:
-
用户的授权名称
-
用户所属的组
-
直接授予用户或间接授予组的角色
-
通过受信任上下文获得的权限。
在使用 SQL 语句时,DB2 授权模型会考虑以下权限的组合:
-
授予与 SQL 语句相关联的主授权 ID 的权限。
-
与 SQL 语句关联的辅助授权 ID。
-
Granted to PUBLIC
-
授予受信任上下文的权限。
Instance level authorities
让我们探讨一些与实例相关的权限。
System administration authority (SYSADM)
这是实例级别最高级别的管理权限。拥有 SYSADM 权限的用户可以在实例内执行一些数据库和数据库管理器命令。拥有 SYSADM 权限的用户可以执行以下操作:
-
Upgrade a Database
-
Restore a Database
-
更新数据库管理器配置文件。
System control authority (SYSCTRL)
这是系统控制权限中最高级别。它用于针对数据库管理器实例及其数据库执行维护和实用操作。这些操作可能会影响系统资源,但它们不允许直接访问数据库中的数据。
拥有 SYSCTRL 权限的用户可以执行以下操作:
-
更新数据库、节点或分布式连接服务 (DCS) 目录
-
强制用户退出系统级
-
创建或放弃数据库级
-
创建、更改或放弃表空间
-
Using any table space
-
Restoring Database
System maintenance authority (SYSMAINT)
它是系统控制权限的第二级。它提供对数据库管理器实例及其数据库执行维护和实用操作的功能。这些操作影响系统资源,但不会允许直接访问数据库中的数据。该权限旨在让用户维护包含敏感数据的数据库管理器实例中的数据库。
只有具有 SYSMAINT 或更高级别系统权限的用户才能执行以下任务:
-
Taking backup
-
Restoring the backup
-
Roll forward recovery
-
Starting or stopping instance
-
Restoring tablespaces
-
Executing db2trc command
-
在实例级别用户或数据库级别用户的情况下,获取系统监视器快照。
具有 SYSMAINT 的用户可以执行以下任务:
-
查询表空间的状态
-
Updating log history files
-
Reorganizing of tables
-
使用 RUNSTATS(收集目录统计信息)
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 权限授予。
Tablespace privileges
这些权限涉及数据库中表空间上的操作。可以向用户授予表空间的 USE 权限。然后这些权限允许他们在表空间中创建表。当创建表空间时,权限所有者可以使用具有 GRANT OPTION 命令的 USE 权限授予权限。而 SECADM 或 ACCESSCTRL 权限具有表空间上 USE 权限的权限。