segunda-feira, 30 de janeiro de 2017

Usuários Privilegiados -- com permissão de SYS (SYSDBA, SYSOPER,....)


No banco de dados Oracle 12c existem usuário privilegiados, os quais tem o "poder" de fazer atividades que usuários comuns não tem permissão.

Esses usuários são:

SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG, e SYSKM

Cada um desses usuários tem os privilégios adequados para as suas respectivas funções


Em algum momento, podemos ter a necessidade de atribuir a um usuário comum os privilégios que um ou mais desses usuários possuem.

Por exemplo:

Podemos conceder o privilégio de SYSDBA para um usuário temporário que fará algum tipo de atividade no banco de dados e que precise desse privilégio.


Para isso, daremos o privilégio de SYSDBA com o comando:

SQL> grant SYSDBA TO XPTO;


Para verificarmos quais usuários possuem uma atribuição privilegiada, podemos consultar a view v$pwfile_users (Oracle password file).

Nesta view, conforme demosntrado abaixo, temos a visão das permissões de "SYS" concedidas a cada usuário do banco de dados.


SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID
------------------------------ ---------- ---------- ---------- ----------- ----------- ----------- ------------
SYS         TRUE TRUE FALSE FALSE FALSE FALSE 0
SYSDG FALSE FALSE FALSE FALSE TRUE FALSE 0
SYSBACKUP                FALSE FALSE FALSE TRUE FALSE FALSE 0
SYSKM FALSE FALSE FALSE FALSE FALSE TRUE 0
XPTO TRUE FALSE FALSE FALSE FALSE FALSE 0





Referências:

http://docs.oracle.com/database/122/REFRN/V-PWFILE_USERS.htm#REFRN30189
http://www.dba-oracle.com/t_v$pwfile.htm