Criar usuário somente para consultas no banco de dados
Quando for necessário criar um usuário no banco de dados de consulta das tabelas da Ema, executar os comandos abaixo:
1 - Criação do usuário:
CREATE USER DOX_CONSULTA
IDENTIFIED BY PASSWORD
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
declare
va_sql varchar2(1000);
va_scm varchar2(50);
va_usr varchar2(50);
va_typ varchar2(50);
begin
va_scm := 'EMA';
va_usr := 'DOX_CONSULTA';
for reg in (select a.OBJECT_NAME, a.OBJECT_TYPE
from ALL_OBJECTS a
where a.OWNER = va_scm
and a.OBJECT_TYPE in (select distinct(OBJECT_TYPE) from ALL_OBJECTS)
and a.OBJECT_TYPE <> 'TRIGGER'
and a.OBJECT_TYPE <> 'INDEX'
AND A.OBJECT_TYPE <> 'SEQUENCE'
AND A.OBJECT_TYPE <> 'TYPE'
AND A.OBJECT_TYPE <> 'LOB'
)loop
begin
if (reg.OBJECT_TYPE = 'FUNCTION' or reg.OBJECT_TYPE = 'PROCEDURE' or reg.OBJECT_TYPE = 'PACKAGE'or reg.OBJECT_TYPE = 'PACKAGE BODY') then
va_typ := 'EXECUTE';
else
va_typ := 'SELECT';
end if;
va_sql := 'grant ' || va_typ || ' on ' || va_scm || '.' || reg.OBJECT_NAME || ' to ' || va_usr;
execute immediate va_sql;
exception
when no_data_found then
null;
when others then
dbms_output.put_line(sqlerrm);
null;
end;
end loop;
end;
/
2 - Permissão:
grant create session to DOX_CONSULTA;