jeudi 30 avril 2009

Extraire et émettre les mêmes droits (permissions) Java

Voici une petite requête fort simple mais qui m'a sauvé du temps. Je devais émettre les mêmes droits d'un schéma sur une autre base de données. Les droits en questions étaient ceux liés aux permissions Java :

select 'EXEC dbms_java.grant_permission('''DJP.GRANTEE''', '''DJP.TYPE_SCHEMA':'DJP.TYPE_NAME''', '''DJP.NAME''', '''DJP.ACTION''');' from DBA_JAVA_POLICY DJP
/

Pour comparer les résultats entre les 2 bases de données, j'ai ajouté cette clause :

where not exists
( select 'x'
from DBA_JAVA_POLICY@DBLINK DJP2
where 'EXEC dbms_java.grant_permission('''DJP2.GRANTEE''', '''
DJP2.TYPE_SCHEMA':'DJP2.TYPE_NAME''', '''DJP2.NAME''', '''DJP.ACTION''')'=
'EXEC dbms_java.grant_permission('''DJP.GRANTEE''', '''
DJP.TYPE_SCHEMA':'DJP.TYPE_NAME''', '''DJP.NAME''', '''DJP.ACTION''')'
)
/

Je n'ai pas vérifié mais il existe peut-être une façon d'extraire ces droits avec le package DBMS_METADATA. C'est à voir !

Aucun commentaire:

Publier un commentaire