Июн 212011
Если база старая, то весьма вероятно, что в ней осталось много пользователей с правами DBA
, например, после уволившихся сотрудников или давно неактуальных скриптов. С точки зрения информационной безопасности это неправильно, поэтому надо навести порядок. Если у такого пользователя есть объекты, то его удаление или блокировка может привести к печальным последствиям для других объектов.
Этим запросом получим статистику по таким пользователям:
SELECT d.grantee, objscnt.cnt FROM dba_role_privs d, ( SELECT owner, COUNT(*) cnt FROM dba_objects GROUP BY owner ) objscnt WHERE d.granted_role = 'DBA' AND d.grantee = objscnt.owner(+) ORDER BY 2 DESC;
Пользователей, у которых поле cnt
пустое, смело можно удалять, а с остальными годится только индивидуальный подход.