Uma outra coisa é que também não consigo mais copiar/selecionar os textos aqui 
no grupo, só está acontecendo comigo?  


Em , Rafael Mendonca <raffaell.t...@yahoo.com> escreveu:
  


Chiappa, não consegui realizar a consulta com a sua query:

Primeira observação:

" PROMPT System privileges assigned directly to a user" 

Essa consulta mostra todos os privilegios dados diretamente pros usuarios, 
inclusive para as ROLES.

Que é a que eu tinha feito no primeiro tópico, beleza (:

O problema é que agora preciso dos privilégios dos usuários dados através de 
ROLES, que seria essa que você mandou:

 SELECT granted_role, privilege
 FROM ( SELECT granted_role
 FROM dba_role_privs WHERE grantee=UPPER('&username')
 UNION
 SELECT granted_role
 FROM role_role_privs
 WHERE role in (SELECT
 granted_role
 FROM dba_role_privs WHERE grantee=UPPER
 ('&username')
 )
 ) roles, dba_sys_privs
 WHERE granted_role=grantee
 ORDER BY 1,2;
 PROMPT Table privileges assigned directly to a user
 SELECT owner, table_name, privilege
 FROM dba_tab_privs
 WHERE grantee=UPPER('&username')
 ORDER BY 1,2,3;


Só que o problema é que quero de todos os usuários e não colocar um determinado 
usuário. O que fiz foi comentar as cláusulas 
"WHERE grantee=UPPER('&username')", para me mostrar tudo e colocar o "grantee" 
no SELECT. Ficou muito tosco, não me mostra os usuários só as roles e seus 
determinados privilégios, e acabei sem identificar os usuários, poderia me 
ajudar? Realmente esse select nao consegui modificar de acordo com a minha 
necessidade.




Em Terça-feira, 10 de Junho de 2014 11:32, "jlchia...@yahoo.com.br [oracle_br]" 
<oracle_br@yahoogrupos.com.br> escreveu:
  


  
Bem, vc não diz mas em primeiro lugar, entendo que vc está focando nos 
privilégios de sistema : obviamente, um privilégio de acesso/DDL/DML impróprio 
nas tabelas do aplicativo pode ** detonar ** o aplicativo, deixando-o fora de 
combate rapidinho, mas isso vai ser tratado/está sendo tratado numa outra 
atuação...
 Com isso em mente, eu diria :
 
 a) faltam aí checar os privilégios UNLIMITED TABLESPACE (que permite criar 
objs na tablespace SYSTEM, talvez até eventualmente lotando-a e assim 
derrubando o banco, ou no mínimo causando problemas de 
performance/administração), de DEBUG, ADMINISTER, , de FLASHBACK e de EXPORT :  
em tese não se derruba um banco com eles MAS podem causar lentidão e pros de 
acesso se mal-usados
 
 b) falta checar os privilégios de EXECUTE nas packages internas pertencentes 
ao SYS e aos schemas
 internos (algumas dessas são mega-poderosas, com LARGA margem para exploit
 
 c) muito importante : falta checar os privilégios de sistema recebidos por 
ROLES, principalmente a role DBA e as roles de operadores do database : 
acredite ou não, ainda hoje vc encontra aplicativo que "exige" que o usuário 
dono das tabs dele receba role de DBA, de DBOPER, ou coisa assim...
 
  []s
  
    Chiappa
    
OBS : => vc pode se basear no script abaixo, que lista TODOS os privs, seja 
recebidos diretamente, seja por role, seja privs de execute, adapte-o pra sua 
necessiadde...


set echo off
set verify off
set pages 9999
col granted_role form a28
col owner form a15
col table_name form a33
col privilege form a33
ACCEPT username  prompt 'Enter Username : '
PROMPT Roles granted to user
SELECT granted_role,admin_option,default_role
FROM dba_role_privs
WHERE grantee=UPPER('&username')
ORDER BY 1;
PROMPT Table Privileges granted to a user through roles
SELECT granted_role, owner, table_name, privilege
FROM ( SELECT granted_role
    FROM dba_role_privs WHERE grantee=UPPER('&username')
       UNION
       SELECT granted_role
    FROM role_role_privs
    WHERE role in (SELECT granted_role
             FROM dba_role_privs WHERE grantee=UPPER('&username')
            )
   ) roles, dba_tab_privs
WHERE granted_role=grantee
ORder by 1,2,3,4;
PROMPT System Privileges assigned to a user through roles
SELECT granted_role, privilege
FROM ( SELECT granted_role
    FROM dba_role_privs WHERE grantee=UPPER('&username')
       UNION
       SELECT granted_role
    FROM role_role_privs
    WHERE role in (SELECT granted_role
             FROM
 dba_role_privs WHERE grantee=UPPER('&username')
            )
   ) roles, dba_sys_privs
WHERE granted_role=grantee
 ORDER BY 1,2;
PROMPT Table privileges assigned directly to a user
SELECT owner, table_name, privilege
FROM dba_tab_privs
WHERE grantee=UPPER('&username')
ORDER BY 1,2,3;
PROMPT System privileges assigned directly to a user
SELECT privilege, admin_option
FROM  dba_sys_privs
WHERE grantee=UPPER('&username') ORDER BY 1;
undefine username
/  
 

Responder a