【问题标题】:How to extract authorities from db2如何从 db2 中提取权限
【发布时间】:2015-09-16 12:00:30
【问题描述】:

我正在为 java 中的数据库开发安全产品。该产品的一项功能是根据数据库权限和活动创建安全建议。

为此,我需要从 db2 中提取权限数据。 到目前为止,我已经阅读了很多关于 db2 安全性的文档,但我还没有找到解决以下问题的方法:

Db2 udb security, part 4 文章只解释了如何提取权限,但here 说:

实例级别权限级别(SYSADM、SYSCTRL、SYSMAINT 和 SYSMON)和组成员资格是在 DB2 UDB 之外定义的,因此不会反映在系统目录表中。

据我了解,权限会影响用户的权限,因此对于全面了解数据库的权限至关重要。

本文进一步解释了如何获取已连接用户的权限,但没有解释如何获取所有用户\组的所有权限。类似于这个答案:How to check DB2 SYSADM or SYSCTRL authorization for a user

所以我的问题是如何在单个查询中提取所有实体的权限?

【问题讨论】:

  • 这是您要求的:INSTANCE db2 get dbm cfg | grep GROUP DATABASE db2 "select * from syscat.DBAUTH"
  • 否,DBAUTH 为被授权者指定数据库权限。我想提取在目录表中找不到的权限。

标签: database db2 privileges


【解决方案1】:

在 DB2 for LUW 中有一个 table function AUTH_LIST_AUTHORITIES_FOR_AUTHID():

select * from table (AUTH_LIST_AUTHORITIES_FOR_AUTHID('JOHN','U'))

它从 DB2 9.7 开始可用。

您仍然需要访问操作系统来枚举用户和组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2011-06-07
    • 2012-08-27
    相关资源
    最近更新 更多