|
|
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой проблемой: из скрипта на pl-sql пытаюсь вызвать внешнюю java-функцию написанную для обработки файлов в каталоге на диске declare p_res varchar2(255); begin p_res := j_processFilesFromFolder(p_dir_name); end; На вход функции подаю полный путь с именем каталога, на выходе должен получить имя файла, лежащего в этом каталоге (там лежит 1 файл). Oracle вначале ругается на то что нет привилегий на чтение для доступа к каталогу Выдаю эти привилегии: dbms_java.grant_permission('имя_пользователя','SYS:java.io.FilePermission',p_dir_name,'read'); Дальше когда функция находит в каталоге файл и пытается выдать его в pl-sql, то Oracle ругается уже на то, что нет привилегий на чтение этого конкретного файла в этом каталоге. Проблема в том, что перед вызовом этой функции я не знаю ещё имени файла в каталоге, оно может быть различным в отличие от имени каталога, которое всегда постоянное. Как выдать оракловскому пользователю права на чтение любых файлов в каталоге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 16:16 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
сорри, пока формулировал вопрос уже нашёл на него ответ :) нужно сначала выдать привилегии на сам каталог: dbms_java.grant_permission('имя_пользователя','SYS:java.io.FilePermission',p_dir_name,'read'); а потом выдать привилегии на все файлы в нём следующим образом: dbms_java.grant_permission('имя_пользователя','SYS:java.io.FilePermission',p_dir_name||'\*','read'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 16:26 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
Проблема, к сожалению, не совсем решена. Ставя "*" мы выдаём привилегии на чтение-запись любых файлов в каталоге, но, как оказалось, не на создание подкаталогов. Каким образом можно и такое право выдать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2017, 13:30 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
verter, PROCEDURE grant_permission(grantee VARCHAR2, permission_type VARCHAR2, permission_name VARCHAR2, permission_action VARCHAR2) Permission name The meaning of the target attribute as defined by the Permission class. Examine the appropriate Permission class for the relevant name. https://docs.oracle.com/cd/B28359_01/java.111/b31225/chten.htm#BABHDBCJ The actions to be granted are passed to the constructor in a string containing a list of one or more comma-separated keywords. The possible keywords are "read", "write", "execute", "delete", and "readlink". Their meaning is defined as follows: read read permission write write permission execute execute permission. Allows Runtime.exec to be called. Corresponds to SecurityManager.checkExec. delete delete permission. Allows File.delete to be called. Corresponds to SecurityManager.checkDelete. readlink read link permission. Allows the target of a symbolic link to be read by invoking the readSymbolicLink method. https://docs.oracle.com/javase/7/docs/api/java/io/FilePermission.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 06:35 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
verter, Если не ошибаюсь, для создания поддиректорий надо ещё и execute грантовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 09:32 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
если у вас 12с + RAC - то имейте в виду что есть баг когда гранты работают только на той ноде на которой было выполнено dbms_java.grant_permissions - чтобы оно по всем нодам прошло - нужно либо базу рестартовать, либо вручную на всех нодах повторить. Баг пофиксен - но нужно проверить есть ли он в вашей версии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 13:25 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
javagrantесли у вас 12с + RAC - то имейте в виду что есть баг когда гранты работают только на той ноде на которой было выполнено dbms_java.grant_permissionsРаки на Яве? - Зачем они там? javagrantчтобы оно по всем нодам прошло - нужно либо базу рестартовать, либо вручную на всех нодах повторить. Баг пофиксен - но нужно проверить есть ли он в вашей версии...Хм... А кто сами каталоги реплицирует по факту выдачи каких-то прав на них? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2017, 13:52 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
Elicjavagrantесли у вас 12с + RAC - то имейте в виду что есть баг когда гранты работают только на той ноде на которой было выполнено dbms_java.grant_permissionsРаки на Яве? - Зачем они там? Скорее ява на раке Ява нужна чтобы запускать утилиты которые дальше с этими файлами работают - например, посылают клиентам готовый файл-выгрузку по ssh каналам. Elicjavagrantчтобы оно по всем нодам прошло - нужно либо базу рестартовать, либо вручную на всех нодах повторить. Баг пофиксен - но нужно проверить есть ли он в вашей версии...Хм... А кто сами каталоги реплицирует по факту выдачи каких-то прав на них? Каталоги расшарены между нодами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 04:22 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
нет, выдача execute не помогает решить проблему. "*" и выдача прав на read,write позволяет создать в папке подпапку и читать любые файлы и даже вырезать их из папки. Но создавать подпапки в подпапке нельзя. Я пытаюсь найти способ выдать 1 раз такое право, которое позволило бы создавать в целевой папке подпапку, в ней другую подпапку и т.д., т.е. мне необходимо перед тем как с файлами начать работать сначала создать структуру подкаталогов в целевой папке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 14:11 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
verterЯ пытаюсь найти способ выдать 1 раз такое право, которое позволило бы создавать в целевой папке подпапку, в ней другую подпапку и т.д., т.е. мне необходимо перед тем как с файлами начать работать сначала создать структуру подкаталогов в целевой папке.Все эти сложности как бы намекают, что СУБД - для другого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2017, 14:41 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
verter, Код: sql 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 05:13 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
javagrantverter, Код: sql 1. ? только read,write вот я и ищу, что нужно добавить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 14:26 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
https://docs.oracle.com/cd/B28359_01/java.111/b31225/chten.htm#BABBFIDB if you are granting FilePermission, then you must provide the physical name of the directory or file, such as /private/oracle. You cannot provide either an environment variable, such as $ORACLE_HOME, or a symbolic link. To denote all files within a directory, provide the * symbol, as follows: /private/oracle/* To denote all directories and files within a directory, provide the - symbol, as follows: /private/oracle/- Попробуйте так exec dbms_java.grant_permission('TESTUSER','SYS:java.io.FilePermission','/home/oracle/-','read,write,execute') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2017, 15:36 |
|
||
|
Как выдать права на чтение файлов внешней java-функции ?
|
|||
|---|---|---|---|
|
#18+
orac_listTo denote all directories and files within a directory, provide the - symbol, as follows: /private/oracle/- Попробуйте так exec dbms_java.grant_permission('TESTUSER','SYS:java.io.FilePermission','/home/oracle/-','read,write,execute') Да, получилось! Спасибо. Можно даже не выдавать право на execute. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2017, 12:57 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39396318&tid=1886473]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 490ms |

| 0 / 0 |
