📜  DB2-数据库安全性

📅  最后修改于: 2020-11-28 13:29:03             🧑  作者: Mango


本章介绍数据库安全性。

介绍

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

  1. 认证方式
  2. 授权书

认证方式

认证是确认用户仅根据执行其被授权执行的活动的权限登录的过程。用户身份验证可以在操作系统级别或数据库级别本身执行。通过使用身份验证工具进行生物识别(例如视网膜和人物照片),可以防止数据库受到黑客或恶意用户的攻击。

可以从db2数据库系统外部管理数据库安全性。以下是某种类型的安全身份验证过程:

  • 基于操作系统身份验证。
  • 轻型目录访问协议(LDAP)

对于DB2,安全服务作为独立产品是操作系统的一部分。对于身份验证,它需要两个不同的凭据,分别是用户标识或用户名以及密码。

授权书

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

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

主要权限:直接授予授权ID。

次要权限:如果用户是成员,则授予组和角色

公开许可:公开授予所有用户。

上下文敏感权限:授予可信上下文角色。

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

  • 系统级授权
  • 系统管理员[SYSADM]
  • 系统控制[SYSCTRL]
  • 系统维护[SYSMAINT]
  • 系统监视器[SYSMON]

当局提供对实例级功能的控制。授权提供给组特权,以控制维护和授权操作。例如,数据库和数据库对象。

  • 数据库级授权
  • 安全管理员[SECADM]
  • 数据库管理员[DBADM]
  • 访问控制[ACCESSCTRL]
  • 数据访问[DATAACCESS]
  • SQL管理员。 [SQLADM]
  • 工作量管理管理员[WLMADM]
  • 解释[说明]

当局在数据库内提供控件。其他数据库授权包括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之外的所有其他数据库权限。

说明:允许解释查询计划,而不需要他们持有的特权访问的表中的数据。

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

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

QUIESCE_CONNECT :允许在数据库处于静止状态时访问数据库(暂时禁用)。

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

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

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

礼遇

SETSESSIONUSER

授权ID特权涉及对授权ID的操作。只有一种特权,称为SETSESSIONUSER特权。可以将其授予用户或组,并允许会话用户将身份切换到授予特权的任何授权ID。此特权由用户SECADM权限授予。

模式权限

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

  • CREATEIN :允许在架构内创建对象
  • ALTERIN :允许修改架构中的对象。

德宝

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

表空间特权

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

表和视图权限

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

控制

它为表或视图提供所有权限,包括删除和授予权限,并向用户撤消各个表的权限。

改变

它允许用户修改表。

删除

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

指数

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

参考资料

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

选择

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

更新

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

套餐特权

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

控制

它为用户提供重新绑定,删除或执行程序包的特权。具有此特权的用户将被授予BIND和EXECUTE特权。

绑定

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

执行

允许执行包。

索引特权

该特权自动获得索引的CONTROL特权。

序列权限

序列自动接收序列的USAGE和ALTER特权。

例行特权

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