Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Definição de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre de 2011 SQL Structured Query Language Desenvolvida e implementada pelo laboratório de pesquisa da IBM em San Jose final da década de 60 e início da década de 70 Inicialmente chamada de SEQUEL (Structured English QUEry Language) Criada como interface entre usuários e o primeiro SGBDR SYSTEM R CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 2 SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL Server Interbase SyBase DB2 MySQL PostgreSQL CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 3 SQL Structured Query Language Atrativo: pequena quantidade de comandos para realizar todas as operações necessárias para definição e manipulação de relações Simplicidade Grande poder de consulta Padrão facilita migração CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 4 SQL Structured Query Language O padrão SQL American National Standard Institute (ANSI) e International Organization for Standardization (ISO) Versão mais recente: SQL3 (SQL99) Principalmente conceitos de orientação a objetos Versões anteriores SQL2 (SQL92) SQL1 (SQL86) Composição do SQL Linguagem de Definição dos Dados (DDL) comandos para a definição, a modificação e a remoção de relações, além da criação e da remoção de índices Linguagem Interativa de Manipulação dos Dados (DML) comandos para a consulta, a inserção, a remoção e a modificação de tuplas no banco de dados CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 5 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 6 1
Composição do SQL Linguagem de Manipulação dos Dados Embutida pode ser utilizada a partir de linguagens de programação de propósito geral Definição de visões SQL DDL inclui comandos para a criação e a remoção de visões Restrições de integridade SQL DDL possui comandos para a especificação de restrições de integridade Composição do SQL Autorização SQL DDL inclui comandos para a especificação de direitos de acesso a relações e visões Gerenciamento de transações introduz comandos para a especificação do início e do fim das transações Recuperação de falhas introduz comandos para utilização do arquivo de log CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 7 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 8 SQL DDL CREATE DATABASE SCHEMA cria um esquema de BD relacional DROP DATABASE SCHEMA remove um esquema de BD relacional CREATE DATABASE CREATE {DATABASE SCHEMA} nome [USER `username` [PASSWORD `password`] ]... ; Cria um esquema de BD relacional agrupa as tabelas e outros comandos que pertencem à mesma aplicação identifica o proprietário do esquema Característica o esquema inicial não possui tabelas/dados CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 9 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 10 DROP DATABASE DROP DATABASE {DATABASE SCHEMA} nome [CASCADE RESTRICT] ; Remove um esquema de BD relacional tabelas/dados índices arquivos de log Usuários autorizados quaisquer elementos associados proprietário do banco de dados DBA ou usuário com privilégio de root CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 11 DROP DATABASE CASCADE remove um esquema de BD, incluindo todas as suas tabelas e os seus outros elementos RESTRICT remove um esquema de BD somente se não existirem elementos definidos para esse esquema CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 12 2
SQL DDL CREATE TABLE cria uma nova tabela (relação) no BD a nova tabela não possui dados DROP TABLE remove uma tabela (relação) e todas as suas instâncias do BD ALTER TABLE altera a estrutura de uma tabela (relação) já existente no BD CREATE TABLE CREATE TABLE nome_tabela ( A 1 D 1 R 1, A 2 D 2 R 2,... A n D n R n ) ; Cria uma nova tabela (relação) Cria os atributos da nova tabela, com nome do atributo: A i (1 i n) tipo de dado (domínio do atributo): D i restrições que atuam no atributo: R i CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 13 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 14 Exemplos de Tipos de Dados Numéricos smallint integer float double precision decimal numeric Hora/Data date time timestamp Booleano TRUE/FALSE ou UNKNOWN Cadeias de Caracteres char character varchar... Outros blob CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 15 Restrições de Integridade Atributo Valor nulo representado por NULL membro de todos os domínios Restrição NOT NULL especificada quando NULL não é permitido proíbe que o atributo receba valor nulo Comparações usar IS NULL e IS NOT NULL CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 16 Restrições de Integridade Atributo Cláusula DEFAULT associa um valor default para um atributo, caso nenhum outro valor seja especificado Cláusula CHECK especifica um predicado que precisa ser satisfeito por todas as tuplas de uma relação exemplos saldo int CHECK (saldo >= 0) nível char(15) CHECK (nível IN (`Bacharelado`,`Mestrado`, `Doutorado`)) Restrições de Integridade Chave Cláusula PRIMARY KEY identifica os atributos da relação que formam a sua chave primária os atributos são implicitamente NOT NULL sintaxe PRIMARY KEY (atributo 1, atributo 2,..., atributo X ) Cláusula UNIQUE não permite valores duplicados para um determinado atributo CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 17 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 18 3
Restrições de Integridade Chave Integridade referencial dependência existente entre a chave estrangeira de uma relação e a chave primária da relação relacionada problemas atualização ou exclusão de elementos da chave primária sem fazer um ajuste coordenado nas chaves estrangeiras inclusão ou alteração de valores não nulos na chave estrangeira que não existam na chave primária CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 19 Restrições de Integridade Chave Cláusula FOREIGN KEY características elimina a possibilidade de violação da integridade referencial reflete nas chaves estrangeiras todas as alterações na chave primária sintaxe FOREIGN KEY (atributos) REFERENCES nome_relação (atributos) [ON UPDATE [CASCADE SET NULL SET DEFAULT]] [ON DELETE [CASCADE SET NULL SET DEFAULT]] CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 20 DROP TABLE DROP TABLE nome_tabela ; Remove uma tabela existente do BD dados metadados índices gatilhos que referenciam a tabela Usuários autorizados proprietário do banco de dados DBA ou usuário com privilégio de root ALTER TABLE Altera o esquema de uma tabela do BD adiciona remove altera ALTER TABLE nome_tabela; colunas ou restrições de integridade CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 21 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 22 Exemplos: ALTER TABLE ALTER TABLE nome_tabela ADD (A 1 D 1 R 1 ),... ADD (A n D n R n ) inclui novas colunas na tabela Exemplos: ALTER TABLE ALTER TABLE nome_tabela ALTER [COLUMN] A 1 TO A 2 modifica o nome de uma coluna existente de A 1 para A 2 ALTER TABLE nome_tabela DROP A 1 elimina uma coluna já existente da tabela ALTER TABLE nome_tabela ALTER [COLUMN] A 1 TYPE NOVOTIPO modifica o tipo de dado de uma coluna CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 23 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 24 4
SQL DDL CREATE DOMAIN cria um domínio para um tipo de dados DROP DOMAIN remove um domínio existente do BD ALTER DOMAIN altera a definição de domínio CREATE DOMAIN CREATE DOMAIN nome_domínio [AS] tipo_dado [DEFAULT... ] [NOT NULL] [CHECK...]... ; Cria um domínio para um tipo de dados restrições de integridade Característica a definição do domínio é global ao BD CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 25 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 26 DROP DOMAIN Remove um domínio existente do BD falha caso o domínio esteja definindo o tipo de dado de alguma coluna Usuários autorizados proprietário do banco de dados DBA DROP DOMAIN nome_domínio ; usuário com privilégio de root ALTER DOMAIN ALTER DOMAIN nome_domínio... ; Altera um domínio existente do BD remove ou define restrições de integridade CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 27 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 28 Domínio no Oracle Sintaxe para a criação de domínio: Exemplo CREATE TYPE meu_numero AS OBJECT ( numero integer); CREATE TABLE tabelax ( atributo1 varchar(10) PRIMARY KEY, atributo2 meu_numero); INSERT INTO tabelax VALUES ('teste', meu_numero(12345)); CREATE SEQUENCE Facilita o processo de criação de identificadores únicos de um registro em um banco de dados É um contador automático que é acionado toda vez que é acessado O número gerado por ela pode ser usado para atualizar o campo chave em uma tabela, garantindo que não existam duas linhas com o mesmo código CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 29 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 30 5
CREATE SEQUENCE Uma seqüência padrão tem as seguintes características Começa sempre a partir do número 1 Tem ordem ascendente É aumentada em 1 CREATE SEQUENCE Sintaxe básica CREATE SEQUENCE sequence_name [START WITH integer_value] [INCREMENTED BY integer_value] CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 31 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 32 CREATE SEQUENCE Para acessar o número seqüencial gerado é necessário trabalhar com o conteúdo de duas pseudocolunas CURRVAL: Retorna o valor atual da seqüência NEXTVAL: Aumenta o valor da seqüência e retorna o próximo valor CREATE SEQUENCE Observações importantes Uma seqüência só está disponível para o esquema que a criou A primeira vez que uma seqüência é acionada ela retorna o seu valor inicial Exemplo: NomeSequencia.NEXTVAL CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 33 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 34 CREATE SEQUENCE Para visualizar no dicionário de dados Selecione a tabela USER_SEQUENCES Para excluir uma seqüência DROP SEQUENCE sequence_name Para alterar uma seqüência ALTER SEQUENCE sequence_name parameter_name NÃO é possível alterar Valor inicial Valor mínimo não pode ser maior que o atual CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 35 SQL DDL CREATE INDEX cria um índice sobre uma ou mais colunas de uma tabela DROP INDEX remove um índice existente do BD ALTER INDEX torna um índice ativo ou inativo CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 36 6
CREATE INDEX CREATE [UNIQUE] INDEX nome_índice ON nome_tabela (nome_coluna [ASC DESC] [, nome_coluna [ASC DESC]]) ; sintaxe SGBD Oracle Cria um índice sobre uma ou mais colunas de uma tabela Considerações desempenho das consultas versus custos de atualização e de armazenamento CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 37 Índice Estrutura de acesso auxiliar usada para melhorar o desempenho na recuperação de registros Pesquisa restringida a um subconjunto dos registros, em contrapartida à análise do conjunto completo realizada em resposta a certas condições CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 38 Índice Índice Exemplo baseado em árvore Desvantagem sobrecarga adicional Observações existe uma variedade de índices, cada qual com uma estrutura de dados particular qualquer atributo em um arquivo pode ser usado para criar um índice vários índices podem ser definidos para um mesmo arquivo A B 4 maria 3 joão 1 cecília 2 luiz 6 júlia 5 marina 7 enzo 16 rúbens 15 carlos 14 levi 4 2 7 1 3 6 5 Custo: log 2 N 15 14 16 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 39 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 40 Atributos Indexados Chave principalmente primária Presentes em operações de seleção valores requeridos em condições igualdade um atributo deve ser indexado? faixa de valores (i.e., range queries) Participam em condições de junção algumas consultas podem ser processadas apenas varrendo-se o índice, sem recuperar qualquer dado CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 41 Índice sobre Vários Atributos quando deve Condição ser criado? vários atributos de uma relação estão envolvidos juntamente em diversas consultas Restrição ordem dos atributos dentro do índice deve corresponder às consultas Exemplo índice sobre (estilo_carro, cor) CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 42 7
DROP INDEX DROP INDEX nome_índice ; Remove um índice existente do BD Usuários autorizados proprietário do banco de dados DBA ou usuário com privilégio de root CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 43 ALTER INDEX Torna um índice existente ativo inativo Característica ALTER INDEX nome_índice { ENABLE DISABLE } ; sintaxe SGBD Oracle tornar um índice inativo e depois ativá-lo novamente gera a reconstrução e o balanceamento do índice CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 44 Exemplo vinho n é_de 1 vinícola n situada 1 região vinho_id nome_vinho tipo_vinho ano_vinho descrição_vinho vinícola_id nome_vinícola descrição_vinícola fone_vinícola fax_vinícola região (região_id, nome_região, mapa_região, descrição_região) vinícola (vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id) vinho (vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id) região_id nome_região descrição_região mapa_região CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 45 Exemplo região CREATE (região_id, DATABASE nome_região, loja_vinhos; mapa_região, descrição_região) CREATE TABLE região ( região_id nome_região mapa_região descrição_região PRIMARY KEY (região_id) ); smallint DEFAULT 0 NOT NULL, varchar(100) NOT NULL, blob, blob, CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 46 Exemplo vinícola (vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id) CREATE TABLE vinícola ( vinícola_id smallint NOT NULL, nome_vinícola varchar(100) NOT NULL, descrição_vinícola blob, fone_vinícola fax_vinícola região_id varchar(15) varchar(15) smallint DEFAULT 0,, NOT NULL, PRIMARY KEY (vinícola_id), FOREIGN KEY (região_id) REFERENCES região(região_id) ON UPDATE SET DEFAULT ON DELETE SET DEFAULT ); CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 47 Exemplo vinho (vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id) CREATE TABLE vinho ( vinho_id smallint NOT NULL, nome_vinho varchar(50) NOT NULL, tipo_vinho varchar(10) DEFAULT seco NOT NULL, ano_vinho descrição_vinho vinícola_id integer blob smallint DEFAULT 0 DEFAULT 0 NOT NULL,, NOT NULL, PRIMARY KEY (vinho_id), FOREIGN KEY (vinícola_id) REFERENCES vinícola (vinícola_id) ON UPDATE CASCADE ON DELETE CASCADE ); CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 48 8
SQL DML Inserção Realizada através da especificação de uma tupla particular de uma consulta que resulta em um conjunto de tuplas a serem inseridas Valores dos atributos das tuplas inseridas devem pertencer ao domínio do atributo Atributos sem valores especificados por NULL ou valor DEFAULT SQL DML Inserção INSERT INTO nome_tabela VALUES ( V 1, V 2,..., V N ) ; Ordem dos atributos deve ser mantida CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 49 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 50 SQL DML Inserção INSERT INTO nome_tabela (A 1, A 2,..., A n ) VALUES ( V 1, V 2,..., V N ) ; Ordem dos atributos não precisa ser mantida SQL DML Inserção - Exemplos INSERT INTO região VALUES (12, nome região, NULL, descrição ); INSERT INTO região (região_id, nome_região) VALUES (12, nome região ); CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 51 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 52 Comandos para Controlar Relações - DCL CONNECT: Permite a conexão a uma base de dados através de um gerenciador DISCONNECT: Desconecta de uma base de dados COMMIT: Torna permanente todas as alterações feitas desde o início da conexão ROLLBACK: Descarta todas as alterações feitas desde o início da conexão, ou do último comando COMMIT ou ROLLBACK Segurança do Banco de Dados Os SGBD incluem recursos de segurança que controlam o modo como um banco de dados é acessado e usado Exemplo: Evitam o acesso ao BD sem autorização Controlam o uso de recursos do sistema (exemplo: tempo de CPU) Fazem auditoria das ações do usuário CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 53 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 54 9
Segurança do Banco de Dados No Oracle Cada usuário do BD tem um esquema associado com o mesmo nome Esquema (tabelas, visões, seqüência, índices, procedimentos, funções, etc.) Todo usuário cria e tem acesso a todos os objetos do esquema correspondente A segurança pode ser classificada em duas categorias Segurança de sistema Segurança de dados CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 55 Segurança do Banco de Dados No Oracle Segurança de sistema: inclui os mecanismos que controlam o acesso e o uso do BD em um determinado nível Combinações válidas de usuário e senha Quantidade de espaço em disco para os objetos de esquema Limites de recurso CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 56 Segurança do Banco de Dados No Oracle Segurança de dados: inclui os mecanismos que controlam o acesso e o uso do BD no nível de objeto de esquema Quais usuários têm acesso a um objeto específico e aos tipos de ações que cada um pode executar (exemplo: o usuário Silva pode emitir comandos SELECT e INSERT, mas não DELETE usando a tabela EMPREGADO) Segurança do Banco de Dados Mecanismos de Segurança suportados pelo Oracle Controle arbitrário O privilégio apropriado deve ser atribuído por um usuário para que ele acesse um objeto de esquema Usuários com um determinado grupo de privilégios podem concedê-los a outros segundo seu critério As ações, se existirem, que são auditadas para cada objeto de esquema CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 57 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 58 Segurança do Banco de Dados Mecanismos de Segurança suportados pelo Oracle Recursos Usuários e esquemas de banco de dados Privilégios Papéis Definições de cota de armazenamento Limites de recurso Auditoria Mecanismos de Segurança Usuários e Esquemas do BD Cada BD tem uma lista de usuários, na qual cada usuário tem uma senha associada Domínio de Segurança São associados a cada usuário Conjunto de propriedades que determinam Ações (privilégios e papéis) disponíveis Espaço disponível em disco Limites de recursos de sistema (exemplo: tempo de CPU) CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 59 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 60 10
Mecanismos de Segurança Privilégios Direito para executar um determinado tipo de declaração SQL Exemplos: Direito de Conectar-se ao BD Direito de criar uma tabela Direito de selecionar linhas da tabela de outro usuário Direito de executar o procedimento de outro usuário Podem ser divididos Privilégios de sistema Muitas vezes disponíveis apenas para o DBA Privilégios do objeto de esquema Atribuídos aos usuários finais CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 61 Mecanismos de Segurança Privilégios Podem ser divididos 1. Privilégios de sistema Muitas vezes disponíveis apenas para o DBA Existem mais de 70 tipos Exemplos: Privilege: GRANT ANY PRIVILEGE Procedure: CREATE PROCEDURE CREATE ANY PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 62 Mecanismos de Segurança Privilégios Podem ser divididos 2. Privilégios do objeto de esquema Atribuídos aos usuários finais Exemplos: ALTER: tabelas e seqüências DELETE: tabelas e visões EXECUTE: procedimentos Etc. CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 63 Mecanismos de Segurança Concedendo Privilégios Duas formas Explicitamente Exemplo: o usuário Silva pode emitir comandos SELECT e INSERT, mas não DELETE usando a tabela EMPREGADO Podem ser concedidos aos papéis (um grupo nomeado de privilégios) que então são concedidos a um ou mais usuários Exemplo: o privilégio de emitir comandos SELECT e INSERT, mas não DELETE usando a tabela EMPREGADO pode ser concedido ao papel chamado GerenteRH, o qual pode ser concedido ao usuário Silva CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 64 Mecanismos de Segurança Papéis São grupos de privilégios concedidos aos usuários ou a outros papéis Existem diversos papéis predefinidos Exemplos: CONNECT, RESOURCE e DBA Mecanismos de Segurança Papéis Vantagens: Concessão reduzida de privilégios Por grupos de usuários Gerenciamento dinâmico de privilégios Se for necessário alterar privilégios de um grupo de usuários, altera-se apenas no papel Disponibilidade seletiva de privilégios Permite o controle específico dos privilégios de um usuário em determinada situação CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 65 CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 66 11
Mecanismos de Segurança Auditoria Auxilia na investigação de um suposto uso suspeito do BD Pode ser executada em três níveis: Auditoria de declaração: associada com declarações SQL específicas Auditoria de privilégio: associada ao uso dos privilégios Auditoria de objeto de esquema: associada aos acessos a objetos de esquema específicos sem levar em conta o usuário CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 67 O comando CREATE USER Permite a criação de novos usuários Sintaxe simplificada CREATE USER username IDENTIFIED BY password CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 68 Os comandos GRANT e REVOKE GRANT: Permite atribuir privilégios REVOKE: Permite revogar privilégios Sintaxe simplificada para atribuir privilégios de sistema (pelo DBA) GRANT role/privilege_name TO username/role [WITH ADMIM OPTION] WITH ADMIM OPTION: permite que o usuário/papel que recebe o privilégio possa atribuílo a outros usuários CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 69 Os comandos GRANT e REVOKE Sintaxe simplificada para atribuir privilégios de objeto (qualquer usuário) GRANT ALL SELECT INSERT DELETE INDEX ALTER UPDATE [(column name) ON table_name/view_name] TO username [WITH ADMIM OPTION] A sintaxe do REVOKE é a mesma do GRANT, basta substituir GRANT por REVOKE nos comandos apresentados CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 70 O comando CREATE ROLE Permite criar novos papéis Sintaxe simplificada CREATE ROLE role_name IDENTIFIED BY password CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 71 Comandos adicionais Para excluir um papel DROP ROLE role_name Para excluir um usuário DROP USER username [CASCADE] Para visualizar no dicionário de dados Usuários e privilégios, selecione a tabela ALL_USERS Papéis, selecione a tabela USER_ROLE_PRIVS CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 72 12
Bibliografia Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Addison Wesley, 2005, 724 p. Bibliografia: p. [690]-714. Material Didático produzido pelos professores Cristina Dutra de Aguiar Ciferri e Caetano Traina Júnior CCM-205 Sistema de Bancos de Dados - 2 quadrimestre de 2011 73 13