1. Como o DBA pode listar quais usuários existem no banco ?
select * from dba_users
order by username;
2. Como o DBA pode listar o status das contas (Aberta, Bloqueada ou Expirada) dos usuários que foram cadastrados no nos últimos 30 dias ?
select username, account_status, lock_date, expiry_date, created
from dba_users
where created > to_date(sysdate-30)
order by username;
3. Como criar um profile para os analistas de sistemas com direito a cinco sessões no banco, auto desconexão em 30 minutos de inatividade e bloqueio de senha em três tentativas ?
create profile analista limit
sessions_per_user 5
idle_time 30
failed_login_attempts 3;
4. Como criar um novo usuário com senha expirada e quota ilimitada na tablespace users ?
create user agilar
identified by "12345"
default tablespace users
temporary tablespace temp
quota unlimited on users
profile analista
password expire;
5. Como criar uma role para gerenciar os direitos dos analistas em vez de atribuir os direitos a cada analista de sistema no banco ?
create role analista
not identified;
grant create session, create table, create trigger, create view, create sequence,
create procedure, create synonym
to analista;
6. Como listar os direitos de sistema atribuidos a role analista ?
select * from role_sys_privs
where role = 'ANALISTA';
ou
select * from dba_sys_privs
where grantee = 'ANALISTA';
7. Como atribuir a role para o usuário Agilar ?
grant analista to agilar;
8. Como o DBA pode saber quais roles um usuário possui ?
select * from dba_role_privs
where grantee = 'AGILAR';
9. Como um usuário pode saber quais roles possui na sua sessão ?
select * from session_roles;
10. Com um usuário pode saber quais privilégios (sistema e objeto) possui na sua sessão ?
select * from session_privs;
11. Como o DBA pode listar os privilégios de sistema atribuidos diretamente para o usuário agilar ?
select * from dba_sys_privs
where grantee = 'AGILAR';
12. Como o DBA pode listar os privilégios de objeto atribuidos diretamente para o usuário agilar ?
select * from dba_tab_privs
where grantee = 'AGILAR';
13. Como o DBA pode saber quais roles existem no banco ?
select * from dba_roles;
14. Como listar os usuários que possuem privilégio de sessão ?
select * from dba_sys_privs
where privilege = 'CREATE SESSION'
order by grantee;
OBS.: Alguns usuários podem ter o privilégio "create session" indiretamente se possuir roles habilitadas.
15. Como o DBA pode definir roles default para um usuário ?
alter user agilar default role analista;
alter user agilar default role all except gerente;
16. Como o usuário pode habilitar ou desabilitar roles ?
set role connect
identified by estoquista;
set role analista;
set role none;