如何从db2中提取权限



我正在开发一个java数据库安全产品。该产品的一个特性是基于db-privileges和activity创建安全建议。

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

Db2 udb安全性第4部分文章解释了如何仅提取特权,但这里它说:

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

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

本文进一步解释了如何获取所连接用户的权限,但没有解释如何获取所有用户组的所有权限。与此答案类似:如何检查用户

的DB2 SYSADM或SYSCTRL授权

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

在DB2 for LUW中有一个表函数AUTH_LIST_AUTHORITIES_FOR_AUTHID():

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

从DB2 9.7开始可用。

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

最新更新