14 января 2014 г.

Анализ прав доступа в БД Oracle

Теория утверждает, что для обеспечения безопасности "выдайте пользователям базы данных минимальный набор прав, необходимый для штатной работы".

На практике же зачастую разработчики и администраторы заказчика не хотят заниматься этой кропотливой работой и я, например, встречал промышленные системы, в которых обычные пользователи имеют права DBA.

И проблема тут не столько в легальных пользователях (их-то иногда можно считать доверенными или под тотальным контролем), а в том, что в случае утечки учётных данных эти избыточные права достанутся злоумышленнику.

В редакции Oracle Database 12с  Enterprise Edition с дополнительной опцией Oracle Database Vault  с помощью пакета DBMS_PRIVILEGE_CAPTURE есть возможность в автоматическом режиме собрать статистику о том какие права доступа реально используются при штатной работе, а какие избыточны.

На основании этой статистики легко написать скрипт для модификации существующих прав доступа для пользователей.

SQL> SELECT 'revoke '||OBJ_PRIV||' on'||OBJECT_OWNER||'.'||OBJECT_NAME||' from'||USERNAME||';' FROM DBA_UNUSED_PRIVS;

Комментариев нет:

Отправить комментарий