2015-09-16 3 views
0

Я разрабатываю продукт безопасности для баз данных в Java. Одной из особенностей этого продукта является создание рекомендаций по безопасности на основе db-привилегий и активности.Как извлечь полномочия из db2

Для этого мне нужно извлечь данные привилегий из db2. До сих пор I'v читать много документации по безопасности db2, но я не нашел решение еще для следующей задачи:

Db2 udb security, part 4 статья объясняет, как извлечь привилегии только, но here он говорит:

Уровни полномочий уровня экземпляра (SYSADM, SYSCTRL, SYSMAINT и SYSMON) и членство в группах определяются вне DB2 UDB и поэтому не отражаются в таблицах системного каталога.

К моим понимающим органам власти относятся к привилегиям пользователя и поэтому имеют решающее значение для получения полной картины прав на db.

Далее в этой статье объясняется, как получить полномочия подключенного пользователя, но не объясняет, как получить все полномочия всех пользователей \ групп. аналогично этому ответу: How to check DB2 SYSADM or SYSCTRL authorization for a user

Итак, мой вопрос заключается в том, как извлекать полномочия всех объектов в одном запросе?

+0

Это то, о чем вы просите: INSTANCE db2 get dbm cfg | grep GROUP DATABASE db2 "select * from syscat.DBAUTH" – AngocA

+0

Нет, DBAUTH указывает привилегии db для получателей. Я хочу извлечь полномочия, которые не могут быть найдены в таблицах каталога. – Tom

ответ

1

В DB2 для LUW есть table function AUTH_LIST_AUTHORITIES_FOR_AUTHID():

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

Он доступен начиная с версии DB2 9.7.

Вам все равно необходимо получить доступ к операционной системе, чтобы перечислять пользователей и группы.