如何从db2中提取权限

时间:2015-09-16 12:00:31

标签: database db2 privileges

我正在为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

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

1 个答案:

答案 0 :(得分:1)

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

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

自DB2 9.7开始提供。

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