Ciências da computação dia 160
SYS é o dono do banco de dados; SYSTEM é o admin; usuário schema: possui objetos no banco, possui privilégios para criar objetos; usuário de aplicação: tem privilégios para acessar objetos, mas não pode alterá-los; por padrão usuários não tem permissão para nada (nem para logar no banco); privilégios não precisam de restart do sistema para funcionar; packages empacotam várias procedures dentro; DCL → data control language (GRANT e REVOKE); cada banco criar o DCL do seu jeito (não possui padrão ANSI); donos dos objetos podem fazer o que quiser com eles. Usuários CREATE TEMPORARY TABLESPACE tmp_tablespace_name; --criar usuário schema CREATE USER name IDENTIFIED BY password DEFAULT TABLESPACE tablespace_name TEMPORARY TABLESPACE tmp_tablespace_name; --RESOURCE deixa o user criar coisas (devs usam esse) --CONNECT dá permissões para logar no bacno GRANT CONNECT, RESOURCE TO name; --altera o limite para o usuário no tablespace ALTER USER name QUOTA UNLIMITED ON tablespace_name; --para usar outro tablespace ao inves do default CREATE TABLE table_name ( coluna1 datatype, coluna2 datatype, coluna3 datatype, ) USING INDEX TABLESPACE tablespace_name; --para setar um tablespace para o index CREATE INDEX index_name on table_name ( coluna1, coluna2, coluna3 ) TABLESPACE tablespace_name; --cria um usário de aplicação CREATE USER name IDENTIFIED BY password; Privilégios --TIPOS DE PRIVILÉGIO --privilégio de sistema GRANT privilegio1, privilegio2,... TO user1, user2,...; --alguns privilégios CREATE SESSION; --para conectar no banco CREATE TABLE; --para criar tabela e indices CREATE SEQUENCE; CREATE VIEW; CREATE PROCEDURE; --privilégio de objetos GRANT privilegio1, privilegio2, ... | ALL [colunas...] ON objeto TO user1, user2, ... | role | PUBLIC [WITH GRANT OPTION]; --permite o usuario dar privilégios para outros usuários nesse objeto --alguns privilégios INSERT, UPDATE, SELECT, DELETE --para tabelas EXECUTE --para procedures --obs: um unico grant não pode misturar privilégio de objeto e de sistema junto --ROLES --grupo de permissões --do sistema CONNECT, RESOURCE, DBA --para admin --para criar uma role CREATE ROLE role_name; GRANT privilegio1, privilegio2,... TO role_name; --REVOKE --remove privilegios REVOKE privilegio1, privilegio2,... ON objeto FROM user1, user2,... | role | PUBLIC [CASCADE CONSTRAINT]; --quando existem tables interligadas com privilégios --SYNONYM --maneira de criar um alias para um objeto CREATE SYNONYM synonym_name FOR object; SELECT * FROM synonym_name;