Você está na página 1de 24

14

Controlando o
Acesso do Usuário

Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Objetivos

Depois de completar esta lição, você poderá


fazer o seguinte:
• Criar usuários
• Criar funções para facilitar a configuração e
manutenção do modelo de segurança
• Usar as instruções GRANT e REVOKE para
conceder e revogar os privilégios de objeto

14-2 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Controlando o Acesso do Usuário

Administrador
do banco de dados

Privilégios
de usuário e senha

Usuários

14-3 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Privilégios
• Segurança de banco de dados:
– Segurança de sistema
– Segurança de dados
• Privilégios de sistema: Obter acesso ao
banco de dados
• Privilégios de objeto: Manipular o conteúdo
dos objetos de banco de dados
• Esquema: Coleção de objetos como, por
exemplo, tabelas, views e seqüências

14-4 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Privilégios de Sistema

• Mais de 80 privilégios estão disponíveis.


• O DBA possui privilégios de sistema de alto
nível:
– Criar novos usuários
– Remover usuários
– Remover tabelas
– Fazer back up de tabelas

14-5 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Criando Usuários

O DBA cria usuários usando a instrução


CREATE USER.

CREATE USER usuário


IDENTIFIED BY senha;

SQL> CREATE USER scott


2 IDENTIFIED BY tiger;
User created.

14-6 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Privilégios de Sistema de Usuário
• Quando o usuário for criado, o DBA poderá
conceder privilégios de sistema específicos
para ele.
GRANT privilégio [, privilégio...]
TO usuário [, usuário...];

• Um desenvolvedor de aplicação pode ter os


seguintes privilégios de sistema:
– CREATE SESSION
– CREATE TABLE
– CREATE SEQUENCE
– CREATE VIEW
– CREATE PROCEDURE
14-7 Copyright Oracle Corporation, 1999. Todos os direitos reservados.
Concedendo
Privilégios de Sistema

O DBA pode conceder privilégios de sistema


específicos a um usuário.

SQL> GRANT create table, create sequence, create view


2 TO scott;
Grant succeeded.

14-8 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


O Que É uma Função?

Usuários

Gerenciador

Privilégio
s
Alocando Alocando privilégios
privilégios com uma função
sem uma função

14-9 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Criando e Concedendo
Privilégios a uma Função

SQL> CREATE ROLE manager;


Role created.

SQL> GRANT create table, create view


2 to manager;
Grant succeeded.

SQL> GRANT manager to BLAKE, CLARK;


Grant succeeded.

14-10 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Alterando Sua Senha

• O DBA cria a sua conta de usuário e


inicializa a sua senha.
• Você pode alterar sua senha usando a
instrução ALTER USER.

SQL> ALTER USER scott


2 IDENTIFIED BY lion;
User altered.

14-11 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Privilégios de Objeto
Privilégio
de Objeto Tabela View Seqüência Procedimento
ALTER √ √
DELETE √ √
EXECUTE √
INDEX √
INSERT √ √
REFERENCES √
SELECT √ √ √
UPDATE √ √

14-12 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Privilégios de Objeto

• Os privilégios de objeto variam de objeto para


objeto.
• Um proprietário tem todos os privilégios
sobre o objeto.
• Um proprietário pode fornecer privilégios
específicos sobre o objeto de proprietário.
GRANT object_priv [(colunas)]
ON objeto
TO {usuário|função|PUBLIC}
[WITH GRANT OPTION];

14-13 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Concedendo Privilégios de Objeto
• Concede privilégios de consulta na
tabela EMP.
SQL> GRANT select
2 ON emp
3 TO sue, rich;
Grant succeeded.

• Concede privilégios para atualizar colunas


específicas aos usuários e funções.
SQL> GRANT update (dname, loc)
2 ON dept
3 TO scott, manager;
Grant succeeded.

14-14 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Usando palavras chave WITH
GRANT OPTION e PUBLIC
• Dar autoridade a um usuário para passar
os privilégios.
SQL> GRANT select, insert
2 ON dept
3 TO scott
4 WITH GRANT OPTION;
Grant succeeded.

• Permitir que todos os usuários no sistema


consultem dados na tabela DEPT de Alice.
SQL> GRANT select
2 ON alice.dept
3 TO PUBLIC;
Grant succeeded.
14-15 Copyright Oracle Corporation, 1999. Todos os direitos reservados.
Confirmando Privilégios Concedidos
Tabela de Dicionário de Dados Descrição
ROLE_SYS_PRIVS Privilégios de sistema concedidos
a funções
ROLE_TAB_PRIVS Privilégios de tabela concedidos
a funções
USER_ROLE_PRIVS Funções acessíveis ao usuário
USER_TAB_PRIVS_MADE Os privilégios de objeto concedidos
aos objetos do usuário
USER_TAB_PRIVS_RECD Os privilégios de objeto concedidos
ao usuário
USER_COL_PRIVS_MADE Os privilégios de objeto concedidos às
colunas dos objetos do usuário
USER_COL_PRIVS_RECD Os privilégios de objeto concedidos ao
usuário em colunas específicas

14-16 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Como Revogar Privilégios de Objeto

• Use a instrução REVOKE para revogar os


privilégios concedidos a outros usuários.
• Os privilégios concedidos a outros
usuários por WITH GRANT OPTION
também serão revogados.

REVOKE {privilégio [, privilégio...]|ALL}


ON objeto
FROM {usuário[, usuário...]|função|PUBLIC}
[CASCADE CONSTRAINTS];

14-17 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Revogando Privilégios de Objeto

Assim como a usuária Alice, revogue os


privilégios SELECT e INSERT fornecidos ao
usuário Scott na tabela DEPT.

SQL> REVOKE select, insert


2 ON dept
3 FROM scott;
Revoke succeeded.

14-18 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Sumário
Instrução Ação
CREATE USER Permite que o DBA crie um usuário
GRANT Permite que o usuário conceda a outros
usuários privilégios para acessar os objetos
do usuário
CREATE ROLE Permite que o DBA crie um conjunto
de privilégios
ALTER USER Permite que os usuários alterem as suas
senhas
REVOKE Remove os privilégios sobre um objeto dos
usuários

14-19 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


Visão Geral do Exercício

Concedendo a outros usuários privilégios sobre sua tabela


Modificando a tabela de um outro usuário através de privilégios concedidos a você

Criando um sinônimo

Consultando as views do dicionário de dados relacionados aos privilégios

14-20 Copyright Oracle Corporation, 1999. Todos os direitos reservados.


14-21 Copyright Oracle Corporation, 1999. Todos os direitos reservados.
14-22 Copyright Oracle Corporation, 1999. Todos os direitos reservados.
14-23 Copyright Oracle Corporation, 1999. Todos os direitos reservados.
14-24 Copyright Oracle Corporation, 1999. Todos os direitos reservados.