Você está na página 1de 3

Fazendo Consultas Importantes No Oracle Com Poucos Privilégios No

Banco

Muitas vezes precisamos de informações importantes do banco de dados, mas para isso
necessitamos de privilégios de leitura em importantes tabelas/views do dicionário de dados,
isso vai de encontro aos interesses de alguns clientes que preferem deixar os usuários do
sistema com o mínimo de privilégios possível. Também vale a pena conhecer essas consultas
para evitar ter que pedir pra algum DBA passar informações que já são acessíveis a você,
mesmo você achando que não tem privilégios suficientes.

Informações da view V$INSTANCE, relativas a Banco, conexão, etc.

Nome da Instancia que voce esta conectado:

SELECT SYS_CONTEXT('USERENV', 'DB_NAME') INSTANCE FROM DUAL;

Como o banco esta identificando a maquina que voce esta conectado

SELECT SYS_CONTEXT('USERENV', 'TERMINAL') MAQUINA FROM DUAL;

Seu ip

SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS') IP FROM DUAL;

Seu usuario no Sistema Operacional

SELECT SYS_CONTEXT('USERENV', 'OS_USER') USUARIO_REDE FROM DUAL;

Dominio de rede onde esta o banco

SELECT SYS_CONTEXT('USERENV', 'DB_DOMAIN') FROM DUAL;

Identificacao da sua maquina para ao banco, em geral inclui seu dominio

SELECT sys_context('USERENV', 'HOST') Maquina_cliente FROM DUAL;

Informação de Configuração da sua sessão NLS_SESSION_PARAMETERS:

SELECT sys_context('USERENV', 'LANG') ISO_Lang FROM dual;


SELECT sys_context('USERENV', 'LANGUAGE') Language FROM dual;
SELECT sys_context('USERENV', 'NLS_CALENDAR') Calendar FROM dual;
SELECT sys_context('USERENV', 'NLS_CURRENCY') Moeda FROM dual;
SELECT sys_context('USERENV', 'NLS_DATE_FORMAT') Formato_Data FROM
dual;
SELECT sys_context('USERENV', 'NLS_DATE_LANGUAGE') Idioma_data FROM
dual;
SELECT sys_context('USERENV', 'NLS_TERRITORY') Territory FROM dual;

Você está conectado em um Oracle RAC e não sabe em qual nó está realmente conectado?
Use esse select para descobrir o número da Instância, muito útil para Oracle Rac, em um single
instance irá aparecer apenas o número 1:

SELECT sys_context('USERENV', 'INSTANCE') FROM dual;

Nome do schema corrente.

Este valor pode ser modificado em uma sessão através do comando ALTER SESSION SET
CURRENT_SCHEMA, geralmente quando o um usuário DBA, loga em uma base e quer executar
um script para um outro owner. o DBA loga com seu user administrator e executa esse
comando para processar algum script que cria objetos para o user owner de sistemas.

Quer informações da V$session e não tem acesso? Aqui como obter essas informações:

SELECT sys_context('USERENV', 'CURRENT_SCHEMA') FROM dual;


SELECT sys_context('USERENV', 'SESSION_USER') FROM dual;
SELECT sys_context('USERENV', 'SID') FROM dual;
SELECT sys_context('USERENV', 'SESSION_USERID') FROM dual;
SELECT sys_context('USERENV', 'CURRENT_SCHEMAID') FROM dual;
SELECT user# FROM sys.user$ WHERE name = USER;

Nome do banco de dados especificado no parametro de inicialização “DB_UNIQUE_NAME”

SELECT sys_context(‘USERENV’, ‘DB_UNIQUE_NAME’) FROM dual;


SELECT name, value FROM gv$parameter where name LIKE ‘db%name’;

Acesso obter informações da V$parameter mas não recebeu acesso de leitura nela? Aqui como
obter essas informações:

create or replace procedure show_parametro(paramname varchar2) is


paramtype binary_integer;
integerval binary_integer;
stringval varchar2(256);
begin
paramtype := dbms_utility.get_parameter_value(paramname,
integerval,
stringval);
if paramtype = 1 then
dbms_output.put_line(paramname || ' - > ' || stringval);
else
dbms_output.put_line(paramname || ' - > ' || integerval);
end if;
end;
begin
show_parametro('user_dump_dest');
end;

user_dump_dest - > /u01/app/oracle/diag/rdbms/dvban11g/dvban11g/trace

Você também pode gostar