Uniao Educacional e Tecnologica Impacta- Uni Impacta

Documentos relacionados
DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

BD II (SI 587) Segurança em Banco de Dados. Josenildo Silva.

Administração de Banco de Dados

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Uniao Educacional e Tecnologica Impacta- Uni Impacta

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha.

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Oracle Database 11g: Introdução à Linguagem SQL Novo

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo

BANCO DE DADOS FACSUL 2017 TECNOLOGIA DE REDE DE COMPUTADORES

Tabelas. Banco de Dados I MySQL

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Oracle Database 12c: Introdução ao SQL Ed. 2

Banco de Dados II. Administração do SGBD Oracle. Tablespaces, usuários, privilégios, papéis e perfis. Gustavo Dibbern Piva

PSI Linguagem de Definição de dados. Módulo 15

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

GBC043 Sistemas de Banco de Dados

Oracle Database 10g: Fundamentos de SQL e PL/SQL


Gerência de Banco de Dados

Administração de Sistemas Operacionais. Prof. Marlon Marcon

SQL Structured Query Language. SQL Structured Query Language. SQL Structured Query Language. Composição do SQL. Composição do SQL.

Administração de Usuários e Privilégios no Banco de Dados

um mecanismo, chamado de perfil, para controlar o limite desses recursos que o usuário pode

Segurança de Acesso a Banco de Dados no MS SQL Server

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 18. Escola Politécnica da Universidade de São Paulo

Banco de Dados. Professora: Luciana Faria

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Marcos Alexandruk Marcos Alexandruk

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Professor Leonardo Larback

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Marcelo Henrique dos Santos

Spectrum Miner. Versão 8.0. Guia de administração para a integração do Portrait Dialogue

Lidando com Armazenamento de Dados

Oracle Database: Fundamentos de SQL e PL/SQL

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

SEGURANÇA E ADMINISTRAÇÃO DE BANCOS DE DADOS

Banco de Dados Oracle 10g: Fundamentos de SQL II

INSTALAÇÃO DO LOGIX COM BANCO ORACLE

CAU Controle de Acesso Unificado. Manual de Usuário

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

SQL (Tópicos) Structured Query Language

MySQL: Controle de Acesso

Visões ... Esquema Externo n. Esquema Externo 1. Esquema Lógico. Usuários finais/aplicações

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

Usando Subconsultas para Solucionar Consultas

SQL Básica. Andre Noel

Comandos de Manipulação

BANCO DE DADOS GERENCIAL 1 A U L A 2

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

MODELAGEM DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

MySQL. Introdução Prof. Erinaldo Nascimento

Administração de Banco de Dados

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

X-RiteColor Master Web Edition

Linguagem SQL Restrições, Triggers e Views

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

--========================================== MIRROR COM CERTIFICADO ===============================================

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Ajuda do Usuário do Forcepoint Secure Messaging

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Banco de Dados. Prof. Antonio

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados I Introdução SQL

Stored Procedures e Triggers

EXEMPLO DE FLASHBACK VERSIONS QUERY E FLASHBACK TRANSACTION QUERY

Bases de Dados. DDL Data Definition Language

Base de Dados. MySQL Prof. Erinaldo Nascimento

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

Aula 06 Sistemas Embarcados LT38C

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Sumário. Capítulo 2 Conceitos Importantes Tópicos Relevantes Instance Base de Dados Conclusão... 37

Rápida revisão do Modelo Relacional

Revisão de Bancos de Dados


Tarefa Orientada 8 Criação de tabelas

Bancos (Bases) de Dados

Oracle Database 10g: Programação com PL/SQL NOVO

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

Bases de Dados. DML Data Manipulation Language Parte 3

TRIGGER e SEGURANÇA. Prof. Edson Thizon

TLBD II Instruções SQL

Introdução em Banco de Dados

15 - Introdução às Bases de Dados

Oracle Database 12c: Workshop de Administração

Emissão de Recibos. Copyright ControleNaNet

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

SQL. Prof. Roger Cristhian Gomes

BANCO DE DADOS PARA WEB

Oracle Database 12c: Programando com PL/SQL Ed. 2

Tarefa Orientada 17 Scripts

Triggers(Gatilhos) Tiago Alves de Oliveira

Transcrição:

Controlando o Acesso do Usuário

Objetivos Ao concluir esta lição, você será capaz de: Diferenciar privilégios de sistema de privilégios de objeto Conceder privilégios em tabelas Conceder funções Distinguir entre privilégios e funções Objetivos Nesta lição, você aprenderá a controlar o acesso a objetos específicos no banco de dados e adicionar usuários com diferentes níveis de privilégios de acesso. Oracle Database 11g: Fundamentos de SQL II 1-2

Agenda da Lição Privilégios de sistema Criando uma função Privilégios de objeto Revogando privilégios de objeto Oracle Database 11g: Fundamentos de SQL II 1-3

Controlando o Acesso do Usuário Administrador do banco de dados Nome de usuário e senha Privilégios Usuários Controlando o Acesso do Usuário Em um ambiente com vários usuários, você pode manter a segurança do acesso e uso do banco de dados. Com a segurança de banco de dados do servidor Oracle, é possível: Controlar o acesso ao banco de dados. Conceder acesso a objetos específicos no banco de dados. Confirmar privilégios concedidos e recebidos com o dicionário de dados Oracle. A segurança do banco de dados pode ser classificada em duas categorias: segurança do sistema e segurança de dados. A segurança do sistema envolve o acesso e o uso do banco de dados no nível do sistema, como nome de usuário e senha, o espaço em disco alocado para usuários e as operações do sistema que os usuários podem executar. A segurança do banco de dados envolve o acesso e o uso de objetos do banco de dados e as ações que esses usuários podem executar nos objetos. Oracle Database 11g: Fundamentos de SQL II 1-4

Privilégios Segurança do banco de dados: Segurança do sistema Segurança de dados Privilégios de sistema: Execução de uma determinada ação no banco de dados Privilégios de objeto: Manipulação do conteúdo dos objetos de banco de dados Esquemas: Conjunto de objetos, como tabelas, views e sequências Privilégios Um privilégio é o direito de executar instruções SQL específicas. O administrador do banco de dados (DBA) é um usuário de alto nível com a capacidade de criar usuários e conceder a eles acesso ao banco de dados e seus objetos. Os usuários requerem privilégios de sistema para acessar o banco de dados e privilégios de objeto para manipular o conteúdo dos objetos no banco de dados. Os usuários também podem receber o privilégio para conceder privilégios adicionais a outros usuários ou a funções, que são grupos nomeados de privilégios relacionados. Esquemas Um esquema é um conjunto de objetos como tabelas, views e sequências. O esquema pertence a um usuário do banco de dados e o nome é igual ao do usuário. Um privilégio do sistema é o direito de executar uma determinada ação ou executar uma ação em qualquer objeto de esquema de um tipo específico. Um privilégio de objeto fornece ao usuário a capacidade de executar uma determinada ação em um objeto de esquema específico. Para obter mais informações, consulte o manual de referência do Oracle Database 2 Day DBA 11g Release 1 (11.1). Oracle Database 11g: Fundamentos de SQL II 1-5

Privilégios de Sistema Estão disponíveis mais de 100 privilégios. O administrador do banco de dados possui privilégios de sistema de alto nível para tarefas como: Criação de novos usuários Remoção de usuários Remoção de tabelas Backup de tabelas Privilégios de Sistema Mais de 100 privilégios de sistema distintos estão disponíveis para usuários e funções. Geralmente, os privilégios de sistema são fornecidos pelo DBA. Privilégios Típicos para DBA Privilégio de Sistema CREATE USER DROP USER DROP ANY TABLE BACKUP ANY TABLE SELECT ANY TABLE CREATE ANY TABLE Operações Autorizadas O favorecido pode criar outros usuários Oracle. O favorecido pode eliminar outro usuário. O favorecido pode eliminar uma tabela em qualquer esquema. O favorecido pode fazer o backup de qualquer tabela em qualquer esquema com o utilitário de exportação. Os favorecidos podem consultar tabelas, views ou views materializadas em qualquer esquema. O favorecido pode criar tabelas em qualquer esquema. Oracle Database 11g: Fundamentos de SQL II 1-6

Criando Usuários O administrador do banco de dados (DBA) cria usuários com a instrução CREATE USER. CREATE USER user IDENTIFIED BY password; CREATE USER demo IDENTIFIED BY demo; Criando Usuários O DBA cria o usuário executando a instrução CREATE USER. O usuário não tem nenhum privilégio nesse ponto. O DBA pode conceder privilégios a esse usuário. Esses privilégios determinam o que o usuário pode fazer no nível do banco de dados. O slide fornece a sintaxe resumida para criação de um usuário. Na sintaxe: user É o nome do usuário a ser criado Password Especifica que o usuário deve efetuar login com essa senha Para obter mais informações, consulte Oracle Database11g SQL Reference. Observação: A partir do Oracle Database 11g, as senhas apresentam distinção entre maiúsculas e minúsculas. Os caracteres maiúsculos e minúsculos são diferentes quando são usados em uma senha. Oracle Database 11g: Fundamentos de SQL II 1-7

Privilégios de Sistema do Usuário Depois de criar um usuário, o DBA pode conceder privilégios de sistema específicos a ele. GRANT privilege [, privilege...] TO user [, user role, PUBLIC...]; Um desenvolvedor de aplicação, por exemplo, pode ter os seguintes privilégios de sistema: CREATE SESSION CREATE TABLE CREATE SEQUENCE CREATE VIEW CREATE PROCEDURE Privilégios Típicos do Usuário Depois de criar um usuário, o DBA pode atribuir privilégios a esse usuário. Privilégio de Sistema CREATE SESSION CREATE TABLE CREATE SEQUENCE Operações Autorizadas Estabelecer conexão com o banco de dados. CREATE VIEW CREATE PROCEDURE Criar tabelas no esquema do usuário. Criar uma sequência no esquema do usuário. Criar uma view no esquema do usuário. Criar um procedure, function ou package armazenado no esquema do usuário. Na sintaxe: privilege É o privilégio do sistema a ser concedido user role PUBLIC É o nome do usuário, o nome da função ou PUBLIC (que indica que cada usuário recebeu o privilégio) Observação: Os privilégios de sistema atuais podem ser localizados na view de dicionário SESSION_PRIVS. O dicionário de dados é um conjunto de tabelas e views, criado e mantido pelo servidor Oracle. Eles contêm informações sobre o banco de dados. Oracle Database 11g: Fundamentos de SQL II 1-8

Concedendo Privilégios de Sistema O DBA pode conceder privilégios de sistema específicos a um usuário. GRANT create session, create table, create sequence, create view TO demo; Concedendo Privilégios de Sistema O DBA usa a instrução GRANT para alocar privilégios do sistema ao usuário. Depois de o usuário receber os privilégios, ele poderá usá-los imediatamente. No exemplo deste slide, o usuário demo recebeu os privilégios para criar sessões, tabelas, sequências e views. Oracle Database 11g: Fundamentos de SQL II 1-9

Agenda da Lição Privilégios de sistema Criando uma função Privilégios de objeto Revogando privilégios de objeto Oracle Database 11g: Fundamentos de SQL II 1-10

O Que é uma Função? Alocando privilégios sem uma função Usuários Privilégios Gerente Alocando privilégios com uma função O Que é uma Função? Uma função é um grupo nomeado de privilégios relacionados que podem ser concedidos ao usuário. Esse método facilita a revogação e a manutenção de privilégios. Um usuário pode ter acesso a várias funções, e uma mesma função pode ser atribuída a vários usuários. As funções geralmente são criadas para uma aplicação de banco de dados. Criando e Atribuindo uma Função Primeiro, o DBA deve criar a função. Em seguida, o DB pode atribuir privilégios à função e atribuir a função aos usuários. Sintaxe CREATE ROLE role; Na sintaxe: role É o nome da função a ser criada Depois de criar a função, o DBA pode usar a instrução GRANT para atribuir a função a usuários, bem como atribuir privilégios à função. Oracle Database 11g: Fundamentos de SQL II 1-11

Criando e Concedendo Privilégios a uma Função Criar uma função: CREATE ROLE manager; Conceder privilégios a uma função: GRANT create table, create view TO manager; Conceder uma função aos usuários: GRANT manager TO BELL, KOCHHAR; Criando uma Função O exemplo do slide cria uma função manager e, em seguida, permite que os gerentes criem tabelas e views. Depois ele concede a Bell e Kochhar a função de gerentes. Agora Bell e Kochhar podem criar tabelas e views. Se várias funções forem concedidas aos usuários, eles receberão todos os privilégios associados a todas as funções. Oracle Database 11g: Fundamentos de SQL II 1-12

Alterando a Senha O DBA cria sua conta de usuário e inicializa sua senha. Você pode alterar sua senha usando a instrução ALTER USER. ALTER USER demo IDENTIFIED BY employ; Alterando a Senha O DBA cria uma conta e inicializa uma senha para cada usuário. Você pode alterar sua senha usando a instrução ALTER USER. O exemplo do slide mostra que o usuário demo altera a senha usando a instrução ALTER USER. Sintaxe ALTER USER user IDENTIFIED BY password; Na sintaxe: user É o nome do usuário password Especifica a nova senha Embora essa instrução possa ser usada para alterar sua senha, há muitas outras opções. Você deve ter o privilégio ALTER USER para alterar qualquer outra opção. Para obter mais informações, consulte o manual Oracle Database11g SQL Reference. Observação: A SQL*Plus possui um comando PASSWORD (PASSW) que pode ser usado para alterar a senha de um usuário quando ele tiver efetuado login. Esse comando não está disponível no SQL Developer. Oracle Database 11g: Fundamentos de SQL II 1-13

Agenda da Lição Privilégios de sistema Criando uma função Privilégios de objeto Revogando privilégios de objeto Oracle Database 11g: Fundamentos de SQL II 1-14

Privilégios de Objeto Privilégio de objeto Tabela View Sequência ALTER DELETE INDEX INSERT REFERENCES SELECT UPDATE Privilégios de Objeto Um privilégio de objeto é um privilégio ou direito de executar uma determinada ação em uma tabela, view, sequência ou procedimento específico. Cada objeto possui um determinado conjunto de privilégios concessíveis. A tabela no slide lista os privilégios de vários objetos. Observe que os únicos privilégios que se aplicam a uma sequência são SELECT e ALTER. UPDATE, REFERENCES e INSERT podem ser restringidos com a especificação de um subconjunto de colunas atualizáveis. Um privilégio SELECT pode ser restringido com a criação de uma view com um subconjunto de colunas e concessão do privilégio SELECT apenas na view. Um privilégio concedido sobre um sinônimo é convertido em um privilégio na tabela de base referenciada pelo sinônimo. Observação: Com o privilégio REFERENCES, você pode garantir que os outros usuários possam criar constraints FOREIGN KEY que façam referência à sua tabela. Oracle Database 11g: Fundamentos de SQL II 1-15

Privilégios de Objeto Os privilégios de objeto variam de objeto para objeto. Um proprietário possui todos os privilégios no objeto. Um proprietário pode conceder privilégios específicos sobre o objeto desse proprietário. GRANT object_priv [(columns)] ON object TO {user role PUBLIC} [WITH GRANT OPTION]; Concedendo Privilégios de Objeto Diferentes privilégios de objeto estão disponíveis para diferentes tipos de objetos de esquema. Um usuário possui automaticamente todos os privilégios de objeto para objetos contidos no esquema do usuário. Um usuário pode conceder qualquer privilégio de objeto sobre qualquer objeto de esquema pertencente a ele a qualquer outro usuário ou função. Se a concessão incluir WITH GRANT OPTION, o favorecido poderá conceder o privilégio de objeto a outros usuários; caso contrário, o favorecido poderá usar o privilégio, mas não poderá concedê-lo a outros usuários. Na sintaxe: object_priv É um privilégio de objeto a ser concedido ALL Especifica todos os privilégios de objeto columns Especifica a coluna de uma tabela ou view na qual os privilégios são concedidos ON object É o objeto no qual os privilégios são concedidos TO Identifica para quem o privilégio é concedido PUBLIC Concede privilégios de objeto a todos os usuários WITH GRANT OPTION Permite que o favorecido conceda os privilégios do objeto a outros usuários e funções Observação: Na sintaxe, o esquema é igual ao nome do proprietário. Oracle Database 11g: Fundamentos de SQL II 1-16

Concedendo Privilégios de Objeto Conceder privilégios de consulta na tabela EMPLOYEES: GRANT select ON employees TO demo; Conceder privilégios para atualizar colunas específicas a usuários e funções: GRANT update (department_name, location_id) ON departments TO demo, manager; Diretrizes Para conceder privilégios sobre um objeto, o objeto deve estar em seu próprio esquema ou você deve possuir privilégios de objeto WITH GRANT OPTION. Um proprietário do objeto pode conceder qualquer privilégio de objeto sobre o objeto a qualquer outro usuário ou função do banco de dados. O proprietário de um objeto adquire automaticamente todos os privilégios de objeto sobre esse objeto. O primeiro exemplo no slide concede ao usuário demo o privilégio para consultar sua tabela EMPLOYEES. O segundo exemplo concede privilégios UPDATE sobre colunas específicas na tabela DEPARTMENTS ao usuário demo e à função manager. Por exemplo, se o seu esquema for oraxx, e o usuário demo quiser usar uma instrução SELECT para obter dados de sua tabela EMPLOYEES, a sintaxe a ser usada será: SELECT * FROM oraxx.employees; Como alternativa, o usuário demo pode criar um sinônimo para a tabela e emitir uma instrução SELECT com base no sinônimo: CREATE SYNONYM emp FOR oraxx.employees; SELECT * FROM emp; Observação: Os DBAs geralmente alocam privilégios do sistema; qualquer usuário proprietário de um objeto pode conceder privilégios de objeto. Oracle Database 11g: Fundamentos de SQL II 1-17

Repassando seus Privilégios Dar autoridade a um usuário para repassar privilégios: GRANT select, insert ON departments TO demo WITH GRANT OPTION; Permitir que todos os usuários no sistema consultem dados da tabela DEPARTMENTS de Alice: GRANT select ON alice.departments TO PUBLIC; Repassando seus Privilégios Palavra-chave WITH GRANT OPTION Um privilégio concedido com a cláusula WITH GRANT OPTION pode ser repassado a outros usuários e funções pelo favorecido. Os privilégios de objeto concedidos com a cláusula WITH GRANT OPTION são revogados quando o privilégio do concessor é revogado. O exemplo do slide fornece ao usuário demo acesso à sua tabela DEPARTMENTS com os privilégios para consultar a tabela e adicionar linhas a ela. O exemplo também mostra que o user1 pode fornecer a outros esses privilégios. Palavra-chave PUBLIC Um proprietário de uma tabela pode conceder acesso a todos os usuários usando a palavra-chave PUBLIC. O segundo exemplo permite que todos os usuários no sistema consultem dados da tabela DEPARTMENTS de Alice. Oracle Database 11g: Fundamentos de SQL II 1-18

Confirmando Privilégios Concedidos View do Dicionário de Dados ROLE_SYS_PRIVS ROLE_TAB_PRIVS USER_ROLE_PRIVS USER_SYS_PRIVS USER_TAB_PRIVS_MADE USER_TAB_PRIVS_RECD USER_COL_PRIVS_MADE USER_COL_PRIVS_RECD Descrição Privilégios de sistema concedidos a funções Privilégios de tabela concedidos a funções Funções acessíveis pelo usuário Privilégios de sistema concedidos ao usuário Privilégios de objeto concedidos sobre objetos do usuário Privilégios de objeto concedidos ao usuário Privilégios de objeto concedidos sobre as colunas dos objetos do usuário Privilégios de objeto concedidos ao usuário sobre colunas específicas Confirmando Privilégios Concedidos Se você tentar executar uma operação não autorizada, como deleção de uma linha de uma tabela sem possuir o privilégio DELETE, o servidor Oracle não permitirá que a operação ocorra. Se for exibida a mensagem de erro do servidor Oracle Table or view does not exist, você terá executado uma das seguintes ações: Nomeado uma tabela ou view não existente Tentado executar uma operação em uma tabela ou view para a qual não possui o privilégio apropriado O dicionário de dados está organizado em tabelas e views e contém informações sobre o banco de dados. Você pode acessar o dicionário de dados para exibir seus privilégios. A tabela no slide descreve várias views de dicionário de dados. Você pode aprender mais sobre as views do dicionário de dados na lição Gerenciando Objetos com Views do Dicionário de Dados. Observação: A view do dicionário ALL_TAB_PRIVS_MADE descreve todas as concessões de objeto feitas pelo usuário ou feitas em objetos pertencentes ao usuário. Oracle Database 11g: Fundamentos de SQL II 1-19

Agenda da Lição Privilégios de sistema Criando uma função Privilégios de objeto Revogando privilégios de objeto Oracle Database 11g: Fundamentos de SQL II 1-20

Revogando Privilégios de Objeto Você pode usar a instrução REVOKE para revogar privilégios concedidos a outros usuários. Os privilégios concedidos a outros por meio da cláusula WITH GRANT OPTION também são revogados. REVOKE {privilege [, privilege...] ALL} ON object FROM {user[, user...] role PUBLIC} [CASCADE CONSTRAINTS]; Revogando Privilégios de Objeto Você pode remover privilégios concedidos a outros usuários usando a instrução REVOKE. Ao usar a instrução REVOKE, os privilégios que você especifica são revogados para usuários nomeados e qualquer outro a quem esses privilégios foram concedidos pelo usuário revogado. Na sintaxe: CASCADE É exigido para remover qualquer constraint de integridade referencial feita ao objeto CONSTRAINTS por meio do privilégio REFERENCES Para obter mais informações, consulte Oracle Database11g SQL Reference. Observação: Se um usuário deixar a empresa e você revogar seus privilégios, será necessário conceder novamente os privilégios que esse usuário concedeu a outros usuários. Se você eliminar a conta do usuário sem revogar os privilégios dela, os privilégios do sistema concedidos por esse usuário a outros não serão afetados por essa ação. Oracle Database 11g: Fundamentos de SQL II 1-21

Revogando Privilégios de Objeto Revogue os privilégios SELECT e INSERT concedidos ao usuário demo na tabela DEPARTMENTS. REVOKE select, insert ON departments FROM demo; Revogando Privilégios de Objeto (continuação) O exemplo no slide revoga os privilégios SELECT e INSERT concedidos ao usuário demo na tabela DEPARTMENTS. Observação: Se for concedido a um usuário um privilégio com a cláusula WITH GRANT OPTION, esse usuário também poderá conceder o privilégio com essa cláusula, de modo que seja possível uma longa cadeia de favorecidos, mas nenhuma concessão circular (concessão para quem já concedeu) é permitida. Se o proprietário revogar um privilégio de um usuário que tiver concedido o privilégio a outros, ocorrerá uma revogação em cascata para todos os privilégios concedidos. Por exemplo, se o usuário A conceder um privilégio SELECT sobre uma tabela para o usuário B, incluindo a cláusula WITH GRANT OPTION, o usuário B poderá conceder ao usuário C o privilégio SELECT também com a cláusula WITH GRANT OPTION, e o usuário C poderá conceder ao usuário D o privilégio SELECT. Se o usuário A revogar privilégios do usuário B, os privilégios concedidos aos usuários C e D também serão revogados. Oracle Database 11g: Fundamentos de SQL II 1-22

Quiz Quais das seguintes afirmações são verdadeiras? 1. Depois que um usuário cria um objeto, ele pode repassar qualquer um dos privilégios de objeto disponíveis a outros usuários usando a instrução GRANT. 2. Um usuário pode criar funções usando a instrução CREATE ROLE para repassar um conjunto de privilégios de sistema ou objeto a outros usuários. 3. Os usuários podem alterar suas próprias senhas. 4. Os usuários podem exibir os privilégios concedidos a eles e os concedidos sobre seus objetos. Respostas: 1, 3, 4 Oracle Database 11g: Fundamentos de SQL II 1-23

Resumo Nesta lição, você aprendeu sobre instruções que controlam o acesso ao banco de dados e aos objetos de banco de dados. Instrução CREATE USER GRANT CREATE ROLE ALTER USER REVOKE Ação Cria um usuário (geralmente executada por um DBA) Concede a outros usuários privilégios para acessarem os objetos Cria um conjunto de privilégios (geralmente executada por um DBA) Altera a senha de um usuário Remove privilégios sobre um objeto dos usuários Resumo Os DBAs estabelecem a segurança inicial de banco de dados para usuários atribuindo privilégios a eles. O DBA cria usuários que devem ter uma senha. O DBA também é responsável por estabelecer privilégios iniciais do sistema para um usuário. Depois que o usuário tiver criado um objeto, ele poderá repassar qualquer um dos privilégios de objeto disponíveis a outros usuários ou a todos eles usando a instrução GRANT. Um DBA pode criar funções usando a instrução CREATE ROLE para repassar um conjunto de privilégios de sistema ou objeto a vários usuários. As funções facilitam a manutenção de privilégios de concessão e revogação. Os usuários podem alterar suas senhas usando a instrução ALTER USER. Você pode remover privilégios de usuários usando a instrução REVOKE. Com as views do dicionário de dados, os usuários podem exibir os privilégios concedidos a eles e aqueles concedidos sobre seus objetos. Oracle Database 11g: Fundamentos de SQL II 1-24

Exercício 1: Visão Geral Este exercício aborda os seguintes tópicos: Concessão de privilégios a outros usuários sobre sua tabela Modificação da tabela de outro usuário por meio dos privilégios concedidos a você Criação de um sinônimo Exercício 1: Visão Geral Reúna-se com outros alunos para este exercício sobre controle de acesso a objetos de banco de dados. Oracle Database 11g: Fundamentos de SQL II 1-25

Exercício 1 Para concluir a pergunta 8 e as seguintes, será necessário estabelecer conexão com o banco de dados usando o SQL Developer. Se você ainda não tiver estabelecido conexão, execute as seguintes tarefas: A. Clique no ícone de desktop SQL Developer. B. Em Connections Navigator, use a conta oraxx e a senha correspondente fornecidas pelo seu instrutor para efetuar logon no banco de dados. 1. Qual privilégio um usuário deve ter para efetuar logon no servidor Oracle? É um privilégio de sistema ou de objeto? 2. Qual privilégio um usuário deve ter para criar tabelas? 3. Se você criar uma tabela, quem poderá repassar privilégios a outros usuários sobre sua tabela? 4. Você é o DBA. Você está criando muitos usuários que requerem os mesmos privilégios de sistema. O que pode tornar sua tarefa mais fácil? 5. Qual comando deve ser usado para alterar sua senha? 6. O User1 é o proprietário da tabela EMP e concede o privilégio DELETE ao User2 usando a cláusula WITH GRANT OPTION. O User2 concede o privilégio DELETE sobre EMP para o User3. O User1 agora sabe que o User3 possui o privilégio e o revoga do User2. Qual usuário pode ser excluído da tabela EMP? 7. Você deseja conceder a SCOTT o privilégio para atualizar dados na tabela DEPARTMENTS. Também deseja permitir que SCOTT conceda esse privilégio a outros usuários. Qual comando deseja usar? 8. Conceda a outro usuário o privilégio de consulta sobre sua tabela. Em seguida, verifique se esse usuário pode usar o privilégio. Observação: Para este exercício, reúna-se com outro grupo. Por exemplo, se você for o usuário ora21, reúna-se com outro usuário ora22. a. Conceda a outro usuário o privilégio para exibir registros em sua tabela REGIONS. Inclua uma opção para esse usuário a fim de conceder esse privilégio a outros usuários. b. Conceda ao usuário o privilégio de consulta sobre a tabela REGIONS. c. Peça ao usuário que repasse o privilégio de consulta a um terceiro usuário (por exemplo, ora23). d. Retire o privilégio do usuário que executar a etapa b. Observação: Cada equipe pode praticar os exercícios 9 e 10 independentemente. 9. Conceda a outro usuário os privilégios de consulta e manipulação de dados sobre sua tabela COUNTRIES. Certifique-se de que o usuário não repasse esses privilégios a outros usuários. 10. Retire os privilégios sobre a tabela COUNTRIES concedidos a outro usuário. Observação: Para os exercícios 11 a 17, reúna-se com outro grupo. 11. Conceda a outro usuário acesso à sua tabela DEPARTMENTS. Peça que o usuário conceda a você acesso de consulta à tabela DEPARTMENTS dele. 12. Consulte todas as linhas em sua tabela DEPARTMENTS. Oracle Database 11g: Fundamentos de SQL II 1-26

Exercício 1 (continuação) 13. Adicione uma nova linha à sua tabela DEPARTMENTS. A Equipe 1 deve adicionar Education como número de departamento 500. A Equipe 2 deve adicionar Human Resources como número de departamento 510. Consulte a tabela da outra equipe. 14. Crie um sinônimo para a tabela DEPARTMENTS da outra equipe. 15. Consulte todas as linhas na tabela DEPARTMENTS da outra equipe usando seu sinônimo. Resultados da instrução SELECT da Equipe 1: Resultados da instrução SELECT da Equipe 2: Oracle Database 11g: Fundamentos de SQL II 1-27

Exercício 1 (continuação) 16. Revogue o privilégio SELECT da outra equipe. 17. Remova a linha que você inseriu na tabela DEPARTMENTS na etapa 13 e salve as alterações. Oracle Database 11g: Fundamentos de SQL II 1-28