Сервер Oracle защищается от этого
Сервер Oracle защищается от этого следующим образом: для выполнения небезопасных действий необходимо явно получить соответствующую привилегию. Попытавшись использовать эту процедуру до получения необходимых привилегий, мы получим следующее сообщение об ошибке:
tkyte@TKYTE816> exec get_dir_list('c:\temp'); BEGIN get_dir_list('c:\temp'); END;
* ERROR at line 1: ORA-29532: Java call terminated by uncaught Java exception: java.security.AccessControlException: the Permission (java.io.FilePermission c:\temp read) has not been granted by dbms_java.grant_permission to SchemaProtectionDomain(TKYTE|PolicyTableProxy(TKYTE)) ORA-06512: at "TKYTE.GET_DIR_LIST", line 0 ORA-06512: at line 1
Поэтому предоставим себе право получать список файлов в соответствующем каталоге:
tkyte@TKYTE816> begin 2 dbms_java.grant_permission 3 (USER, 4 'java.io.FilePermission', 5 'c:\temp', 6 'read'); 7 end; 8 /
PL/SQL procedure successfully completed.
И можно выполнять процедуру:
tkyte@TKYTE816> exec get_dir_list('c:\temp');
PL/SQL procedure successfully completed.
tkyte@TKYTE816> select * from dir_list where rownum < 5;
FILENAME ---------------------------------- a.sql abc.dat activation activation8i.zip
Соответствующие права доступа определяются спецификацией Java2 Standard Edition (J2SE) и подробно описаны на странице
http://java.sun.com/j2se/1.3/docs/api/java/security/Permission.html. В приложении А мы подробно рассмотрим пакет
DBMS_JAVA и его использование.
Есть еще один нюанс, который необходимо учитывать. Oracle 8.1.6 —
первая версия СУБД Oracle, поддерживающая систему прав доступа, задаваемую спецификацией J2SE. В Oracle 8.1.5 для этого приходилось использовать роли. К сожалению, роль была ровно одна:
JAVASYSPRIV. Ее использование будет подобно предоставлению роли администратора базы данных каждому пользователю только потому, что ему необходимо создать представление, — это слишком мощная роль для выполнения такого простого действия. При наличии роли
JAVASYSPRIV можно делать все, что угодно. Будьте осторожны при использовании этой роли в версии 8.1.5 и постарайтесь перейти на следующие версии, где принята более избирательная модель привилегий.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий