Немного по вопросу безопасности. Параметр инициализации O7_DICTIONARY_ACCESSIBILITY. ORA-28009

dbstalker, 24 марта

Одно из правил защиты вашей базы данных от неправомерных действий: включение защиты словаря данных.

То есть необходимо защищать словарь данных от доступа пользователей с системными привилегиями типа ANY (например, SELECT ANY TABLE ). Для этого параметр инициализации O7_DICTIONARY_ACCESSIBILITY устанавливается в значение FALSE. В Oracle9i и выше параметр O7_DICTIONARY_ACCESSIBILITY по умолчанию установлен в FALSE.

При таком значении параметра доступ к словарю вашей базы данных будут иметь только пользователи с административными привилегиями, то есть те, кто имеет возможность подключиться к базе данных как «AS SYSDBA». Если администратор решил дать пользователю доступ к словарю, тогда он должен предоставить привилегию SELECT ANY DICTIONARY.

Давайте посмотрим на результаты запроса :

select privilege from dba_sys_privs where grantee ='DBA' and privilege not in
(select privilege from dba_sys_privs where grantee ='SYS')

ANALYZE ANY DICTIONARY
SELECT ANY DICTIONARY

Сразу видно, чем отличается SYS от DBA.

И, следовательно, при попытке подключения к базе как CONNECT SYS/ ПАРОЛЬ получение сообщения об ошибке «ORA-28009: connection to sys should be as sysdba or sysoper» вполне прогнозируемо. Доступ к словарю данных, которым владеет пользователь SYS, запрещен всем пользователям, даже если у них есть привилегия SELECT ANY TABLE. Здесь речь идет о таблицах типа SYS.OBJ$, а не представлениях типа ALL_TABLES.

Вывод: при O7_DICTIONARY_ACCESSIBILITY= FALSE пользователь SYS должен подключаться так: connect sys/пароль as sysdba

 

Новый комментарий

Я не спамер: введите суму 6+7



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Расписание автобусов
18 июля, 3 ответа
Отдых в августе
17 июля, 4 ответа