diff --git a/compare_grant.sh b/compare_grant.sh index 9616bea..d63c194 100644 --- a/compare_grant.sh +++ b/compare_grant.sh @@ -3,5 +3,5 @@ # dans cet exemple : # La commande pour extraire les GRANT qui sont dans la version 12 mais pas dans la 19 : -diff -w <(cat /tmp/grant_12 | grep -v '^$' | sort -u) <(cat /tmp/grant_19 | grep -v '^$' | sort -u) | grep '^<' | sed 's/< //g' | sort +diff -w <(cat /tmp/grant_12 | grep '^GRANT' | grep -v '^$' | sort -u) <(cat /tmp/grant_19 | grep '^GRANT' | grep -v '^$' | sort -u) | grep '^<' | sed 's/< //g' | sort diff --git a/get_grant_and_priv.sql b/get_grant_and_priv.sql index 34ac326..40037db 100644 --- a/get_grant_and_priv.sql +++ b/get_grant_and_priv.sql @@ -3,22 +3,24 @@ -- ensuite il retourne les requetes pour creer les grants associe a ce compte -- un fichier grant_USER.lst est généré dans le répertoire courant -- -SET PAGES 999 HEAD OFF FEEDBACK OFF +set heading off pages 0 feedback off echo off verify off ACCEPT v_user CHAR PROMPT 'compte utilisateur pour lequel on va extraire les GRANTS : ' -set verify off SPOOL grant_&v_user -SELECT '-- Les roles pour le compte &v_user :' FROM DUAL; -SELECT DISTINCT 'CREATE ROLE '||GRANTED_ROLE||';' FROM DBA_ROLE_PRIVS WHERE GRANTEE=upper('&v_user'); +SELECT 'REM Les roles :' FROM DUAL; +SELECT DISTINCT 'CREATE ROLE '||GRANTED_ROLE||';' FROM DBA_ROLE_PRIVS WHERE GRANTEE IN &v_users; -SELECT '-- Les GRANTs depuis DBA_ROLE_PRIVS pour le compte &v_user :' FROM DUAL; -SELECT DISTINCT 'GRANT '||GRANTED_ROLE||' TO '||GRANTEE|| CASE WHEN ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted Roles" FROM DBA_ROLE_PRIVS WHERE GRANTEE=upper('&v_user') ORDER BY 1; +SELECT 'REM Les GRANTs depuis DBA_ROLE_PRIVS :' FROM DUAL; +SELECT DISTINCT 'GRANT '||GRANTED_ROLE||' TO '||GRANTEE|| CASE WHEN ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted Roles" FROM DBA_ROLE_PRIVS WHERE GRANTEE IN &v_users ORDER BY 1; -SELECT '-- Les GRANTs depuis DBA_SYS_PRIVS pour le compte &v_user :' FROM DUAL; -SELECT 'GRANT '||PRIVILEGE||' TO '||GRANTEE|| case when ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted System Privileges" FROM DBA_SYS_PRIVS WHERE GRANTEE=upper('&v_user'); +SELECT 'REM Les GRANTs depuis DBA_SYS_PRIVS :' FROM DUAL; +SELECT DISTINCT 'GRANT '||PRIVILEGE||' TO '||GRANTEE|| CASE WHEN ADMIN_OPTION='YES' THEN ' WITH ADMIN OPTION;' ELSE ';' END "Granted System Privileges" FROM DBA_SYS_PRIVS WHERE GRANTEE IN &v_users; -SELECT '-- Les GRANTs depuis DBA_TAB_PRIVS pour le compte &v_user :' FROM DUAL; -SELECT DISTINCT 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||CASE WHEN GRANTABLE='YES' THEN ' WITH GRANT OPTION;' ELSE ';' END "Granted Object Privileges" FROM DBA_TAB_PRIVS WHERE GRANTEE=upper('&v_user'); +SELECT 'REM Les GRANTs depuis DBA_TAB_PRIVS :' FROM DUAL; +SELECT DISTINCT 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||CASE WHEN GRANTABLE='YES' THEN ' WITH GRANT OPTION;' ELSE ';' END "Granted Object Privileges" FROM DBA_TAB_PRIVS WHERE GRANTEE IN &v_users; + +SELECT 'REM Les GRANTs depuis DBA_TAB_PRIVS pour le compte PUBLIC sur les objets SYS.DBMS_XXX :' FROM DUAL; +SELECT DISTINCT 'GRANT '||PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME||' TO '||GRANTEE||CASE WHEN GRANTABLE='YES' THEN ' WITH GRANT OPTION;' ELSE ';' END "Granted Object Privileges" FROM DBA_TAB_PRIVS WHERE GRANTEE IN ('PUBLIC') and OWNER='SYS' and TABLE_NAME like '%DBMS_%' order by 1; SPOOL OFF EXIT diff --git a/redolog_size_per_days.sql b/redolog_size_per_days.sql new file mode 100644 index 0000000..a1b060d --- /dev/null +++ b/redolog_size_per_days.sql @@ -0,0 +1,11 @@ +REM +REM Tailes des redoslog par jour +REM + +select + to_char(first_time, 'YYYY/MM/dd'), + ROUND(sum(BLOCKS*BLOCK_SIZE)/1024/1024, 0) "Taille_Mo" +from v$archived_log +group by to_char(first_time, 'YYYY/MM/dd') +order by to_char(first_time, 'YYYY/MM/dd') +;