Controlando o Acesso Do Usuário

20
Copyright Oracle Corporation, 1999. Todos os direitos reservados. 14 14 Controlando o Acesso do Usuário

description

banco de dados

Transcript of Controlando o Acesso Do Usuário

Page 1: Controlando o Acesso Do Usuário

Copyright Oracle Corporation, 1999. Todos os direitos reservados.

1414

Controlando oAcesso do Usuário

Controlando oAcesso do Usuário

Page 2: Controlando o Acesso Do Usuário

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

ObjetivosObjetivos

Depois de completar esta lição, você poderá Depois de completar esta lição, você poderá fazer o seguinte: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

Depois de completar esta lição, você poderá Depois de completar esta lição, você poderá fazer o seguinte: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

Page 3: Controlando o Acesso Do Usuário

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

Controlando o Acesso do UsuárioControlando o Acesso do Usuário

AdministradorAdministradordo banco de dadosdo banco de dados

UsuáriosUsuários

Privilégiosde usuário e senha

Page 4: Controlando o Acesso Do Usuário

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

PrivilégiosPrivilé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

• 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

Page 5: Controlando o Acesso Do Usuário

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

Privilégios de SistemaPrivilé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

• 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

Page 6: Controlando o Acesso Do Usuário

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

Criando UsuáriosCriando Usuários

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

SQL> CREATE USER scott 2 IDENTIFIED BY tiger;User created.User created.

SQL> CREATE USER scott 2 IDENTIFIED BY tiger;User created.User created.

CREATE USER usuárioIDENTIFIED BY senha;

Page 7: Controlando o Acesso Do Usuário

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

Privilégios de Sistema de UsuárioPrivilégios de Sistema de Usuário

GRANT privilégio [, privilégio...]TO usuário [, usuário...];

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

• Um desenvolvedor de aplicação pode ter os seguintes privilégios de sistema:– CREATE SESSION– CREATE TABLE– CREATE SEQUENCE– CREATE VIEW– CREATE PROCEDURE

• Quando o usuário for criado, o DBA poderá conceder privilégios de sistema específicos para ele.

• Quando o usuário for criado, o DBA poderá conceder privilégios de sistema específicos para ele.

Page 8: Controlando o Acesso Do Usuário

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

Concedendo Privilégios de Sistema

Concedendo Privilégios de Sistema

O DBA pode conceder privilégios de sistema O DBA pode conceder privilégios de sistema específicos a um usuário.específicos a um usuário.O DBA pode conceder privilégios de sistema O DBA pode conceder privilégios de sistema específicos a um usuário.específicos a um usuário.

SQL> GRANT create table, create sequence, create view 2 TO scott;Grant succeeded.Grant succeeded.

SQL> GRANT create table, create sequence, create view 2 TO scott;Grant succeeded.Grant succeeded.

Page 9: Controlando o Acesso Do Usuário

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

O Que É uma Função?O Que É uma Função?

Alocando Alocando privilégiosprivilégios

sem uma funçãosem uma função

Alocando privilégiosAlocando privilégioscom uma funçãocom uma função

PrivilégioPrivilégioss

UsuáriosUsuários

GerenciadorGerenciador

Page 10: Controlando o Acesso Do Usuário

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

Criando e ConcedendoPrivilégios a uma FunçãoCriando e Concedendo

Privilégios a uma Função

SQL> CREATE ROLE manager;Role created.Role created.

SQL> CREATE ROLE manager;Role created.Role created.

SQL> GRANT create table, create view 2 to manager; Grant succeeded.Grant succeeded.

SQL> GRANT create table, create view 2 to manager; Grant succeeded.Grant succeeded.

SQL> GRANT manager to BLAKE, CLARK; Grant succeeded.Grant succeeded.

SQL> GRANT manager to BLAKE, CLARK; Grant succeeded.Grant succeeded.

Page 11: Controlando o Acesso Do Usuário

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

Alterando Sua SenhaAlterando 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.

• 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.User altered.

Page 12: Controlando o Acesso Do Usuário

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

Privilégiode Objeto Tabela View Seqüência Procedimento

ALTER

DELETE

EXECUTE

INDEX

INSERT

REFERENCES

SELECT

UPDATE

Privilégios de ObjetoPrivilégios de Objeto

Page 13: Controlando o Acesso Do Usuário

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

Privilégios de ObjetoPrivilé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.

• 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];

GRANT object_priv [(colunas)] ON objeto TO {usuário|função|PUBLIC} [WITH GRANT OPTION];

Page 14: Controlando o Acesso Do Usuário

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

Concedendo Privilégios de ObjetoConcedendo Privilégios de Objeto

SQL> GRANT select 2 ON emp 3 TO sue, rich;Grant succeeded.Grant succeeded.

SQL> GRANT select 2 ON emp 3 TO sue, rich;Grant succeeded.Grant succeeded.

SQL> GRANT update (dname, loc) 2 ON dept 3 TO scott, manager;Grant succeeded.Grant succeeded.

SQL> GRANT update (dname, loc) 2 ON dept 3 TO scott, manager;Grant succeeded.Grant succeeded.

• Concede privilégios de consulta na tabela EMP.

• Concede privilégios de consulta na tabela EMP.

• Concede privilégios para atualizar colunas específicas aos usuários e funções.

• Concede privilégios para atualizar colunas específicas aos usuários e funções.

Page 15: Controlando o Acesso Do Usuário

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

Usando palavras chave WITH GRANT OPTION e PUBLIC

Usando palavras chave WITH GRANT OPTION e PUBLIC

• Permitir que todos os usuários no sistema consultem dados na tabela DEPT de Alice.

• Permitir que todos os usuários no sistema consultem dados na tabela DEPT de Alice.

SQL> GRANT select, insert 2 ON dept 3 TO scott 4 WITH GRANT OPTION;Grant succeeded.Grant succeeded.

SQL> GRANT select, insert 2 ON dept 3 TO scott 4 WITH GRANT OPTION;Grant succeeded.Grant succeeded.

SQL> GRANT select 2 ON alice.dept 3 TO PUBLIC;Grant succeeded.Grant succeeded.

SQL> GRANT select 2 ON alice.dept 3 TO PUBLIC;Grant succeeded.Grant succeeded.

• Dar autoridade a um usuário para passar os privilégios.

• Dar autoridade a um usuário para passar os privilégios.

Page 16: Controlando o Acesso Do Usuário

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

Confirmando Privilégios ConcedidosConfirmando 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 àscolunas dos objetos do usuário

USER_COL_PRIVS_RECD Os privilégios de objeto concedidos aousuário em colunas específicas

Page 17: Controlando o Acesso Do Usuário

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

Como Revogar Privilégios de ObjetoComo 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.

• 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 objetoFROM {usuário[, usuário...]|função|PUBLIC}[CASCADE CONSTRAINTS];

REVOKE {privilégio [, privilégio...]|ALL}ON objetoFROM {usuário[, usuário...]|função|PUBLIC}[CASCADE CONSTRAINTS];

Page 18: Controlando o Acesso Do Usuário

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

Revogando Privilégios de ObjetoRevogando Privilégios de Objeto

Assim como a usuária Alice, revogue os Assim como a usuária Alice, revogue os privilégios SELECT e INSERT fornecidos ao privilégios SELECT e INSERT fornecidos ao usuário Scott na tabela DEPT.usuário Scott na tabela DEPT.

Assim como a usuária Alice, revogue os Assim como a usuária Alice, revogue os privilégios SELECT e INSERT fornecidos ao privilégios SELECT e INSERT fornecidos ao usuário Scott na tabela DEPT.usuário Scott na tabela DEPT.

SQL> REVOKE select, insert 2 ON dept 3 FROM scott;Revoke succeeded.Revoke succeeded.

SQL> REVOKE select, insert 2 ON dept 3 FROM scott;Revoke succeeded.Revoke succeeded.

Page 19: Controlando o Acesso Do Usuário

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

SumárioSumá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 objetosdo usuário

CREATE ROLE Permite que o DBA crie um conjuntode privilégios

ALTER USER Permite que os usuários alterem as suassenhas

REVOKE Remove os privilégios sobre um objeto dosusuários

Page 20: Controlando o Acesso Do Usuário

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

Visão Geral do ExercícioVisã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

• 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