probleme de permission Java.io.FilePermission avec xmldom.writeToFile
Bonjour,
J'écris un petit bout de pl/sql sur une base 8.1.7 qui permet d'extraire le contenu d'une table dans un fichier XML.
le code est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
declare
queryCtx DBMS_XMLquery.ctxType;
result CLOB;
p xmlparser.parser;
doc xmldom.DOMDocument;
begin
queryCtx := DBMS_XMLQuery.newContext('select * from maTable');
result := DBMS_XMLQuery.getXML(queryCtx);
p := xmlParser.newParser;
xmlParser.parseClob(p, result);
doc := xmlparser.getDocument(p);
xmldom.writeToFile(doc, 'E:\ora-results\result.xml');
DBMS_XMLQuery.closeContext(queryCtx);
end;
/ |
mon probleme est que lorsque j'exécute ce code avec mon user system, j'ai l'erreur suivante:
ORA-29532: Java call terminated by uncaught Java exception:
java.security.AccessControlException: the Permission (java.io.FilePermission
e:\ora-results\result.xml write) has not been granted by
dbms_java.grant_permission to
SchemaProtectionDomain(SYSTEM|PolicyTableProxy(SYSTEM))
ORA-06512: at "SYSTEM.XMLDOCUMENTCOVER", line 0
ORA-06512: at "SYSTEM.XMLDOM", line 1782
ORA-06512: at line 28
Par contre, quand j'utilise le user sys, ca marche niquel chrome. Je me dis que mon utilisateur system n'a pas les permission nécessaire... apres quelques recherches, j'ai effectué les commandes suivantes, en me connectant en sys:
EXEC DBMS_JAVA.GRANT_PERMISSION('SYSTEM', 'SYS:java.io.FilePermission', 'E:\ora-results\result.xml', 'read, write, execute, delete');
GRANT JAVAUSERPRIV TO SYSTEM;
COMMIT;
Mais j'ai toujours la meme erreur quand j'exécute mon bloc PL/SQL avec le user system...
Merci pour vos indications!