Estaremos postando informações sobre acesso e segurança do usuário no banco de dados oracle. Esta postagem fornecerá boas informações sobre Criar usuário no Oracle, Privilégios de sistema e Privilégios de objeto Oracle, Como conceder os privilégios aos usuários, Como mostrar todos os privilégios de um usuário no oracle
instrução CRIAR USUÁRIO
É empregado para criar um usuário (esquema).
A autenticação padrão para um novo usuário é o banco de dados. O usuário recebe uma senha e a senha é mantida criptografada no banco de dados. Existem dois outros tipos de autenticação possíveis, o primeiro é a autenticação externa usando o nível do sistema operacional. A autenticação externa verifica a senha no nível do sistema operacional.
A outra é a autenticação global que verifica a senha do usuário no serviço de segurança Oracle ou outro serviço de diretório de terceiros.
Atribuindo atributos –
Podemos alterar os atributos do usuário usando o ALTER USER. Podemos alterá-los ou atribuí-los
Criar uma instrução de usuário com alguns atributos definidos será
CREATE USER SCOTT IDENTIFIED BY TTOC DEFAULT TABLESPACE USERS QUOTA 10M ON USERS TEMPORARY TABLESPACE temp QUOTA 5M ON system PROFILE application_user PASSWORD EXPIRE
Privilégios do sistema Oracle
Ele permite que o beneficiário crie, altere, elimine e gerencie objetos de banco de dados. Por exemplo, os privilégios para criar tablespaces e excluir as linhas de qualquer tabela em um banco de dados são privilégios do sistema.
O Oracle possui mais de 100 privilégios de sistema (encontrados na tabela SYSTEM_PRIVILEGE_MAP).
Existem 2 privilégios especiais em um banco de dados Oracle chamado SYSDBA e SYSOPER. Ambos os privilégios permitem operações de banco de dados como STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG e RECOVER. SYSDBA permite o comando CREATE DATABASE e as opções CHANGE CHARACTER SET.
Os privilégios do sistema são fornecidos pelo administrador do banco de dados aos usuários usando o comando grant e revogados usando o comando revoke
Se o DBA precisar fornecer privilégios de sistema a alguém para que outra pessoa também possa concedê-lo, ele precisará ser fornecido com a opção de administrador
GRANT create session TO user; GRANT create session TO user with admin option; Revoke create session from user;
Privilégios do sistema do usuário
Quando o usuário é criado, geralmente concedemos os privilégios de sistema abaixo
- CRIAR SESSÃO
- CRIAR TABELA
- CRIAR VISUALIZAÇÃO
- CRIAR SEQUÊNCIA
- CRIAR PROCEDIMENTO
Com este usuário pode começar a criar a tabela e outros objetos.
Sample
CREATE USER "TEST" IDENTIFIED BY TEST
DEFAULT TABLESPACE "TOOLS"
TEMPORARY TABLESPACE "TEMP";
grant CREATE TRIGGER to TEST;
grant CREATE PROCEDURE to TEST;
grant CREATE SESSION to TEST;
grant CREATE TYPE to TEST;
grant CREATE TABLE to TEST;
grant CREATE VIEW to TEST;
grant ALTER SESSION to TEST;
grant CREATE SEQUENCE to TEST;
grant CREATE SYNONYM to TEST;
grant CREATE ANY SYNONYM to TEST;
grant UNLIMITED TABLESPACE to TEST;
Privilégios de objetos Oracle
Estes são concedidos em objetos de banco de dados (como uma tabela, visão, procedimento, etc.…)
O dono tem todos os privilégios e um dono pode dar privilégios específicos nos objetos
O proprietário pode fornecer os privilégios usando o comando abaixo
GRANT privileges ON object TO user;
Os privilégios podem ser selecionar, inserir, atualizar, excluir ou TODOS
Se o proprietário quiser fornecer privilégios a todos os usuários
GRANT privileges ON object TO public;
Se o proprietário quiser fornecer privilégio ao usuário com uma opção de concessão. Basicamente, isso significa que o beneficiário pode atribuir ainda mais esse privilégio a outros
GRANT privileges ON object TO user with grant option;
Da mesma forma, temos o comando revoke para remover os privilégios dos objetos
O que é uma função de oráculo?
Uma função é um objeto de banco de dados usado para impor privilégios. Um usuário pode receber uma função para definir privilégios em objetos de banco de dados:
GRANT EBS_ADMIN TO SCOTT;
Ele concederá a função EBS_ADMIN com todos os seus privilégios ao usuário SCOTT.
Criando e usando funções
O comando CREATE ROLE [IDENTIFIED BY
Qual é a diferença entre privilégios de sistema e de objeto?
Tabelas e visualizações do dicionário de dados
A Oracle forneceu visualizações de dicionário de dados para obter informações sobre privilégios
Existem três categorias de visualizações
Verificando visualizações de privilégios
Consultas úteis para os privilégios
como verificar privilégios de usuário no oracle
col role for a16 col pv for a75 hea 'PRIVILEGE OR ROLE' break on role on type skip 1 define usercheck = 'SH' select grantee, 'ROL' type, granted_role pv from dba_role_privs where grantee = '&usercheck' union select grantee, 'PRV' type, privilege pv from dba_sys_privs where grantee = '&usercheck' union select grantee, 'OBJ' type, max(decode(privilege,'WRITE','WRITE,'))||max(decode(privilege,'READ','READ'))|| max(decode(privilege,'EXECUTE','EXECUTE'))||max(decode (privilege,'SELECT','SELECT'))|| max(decode(privilege,'DELETE',',DELETE'))||max(decode (privilege,'UPDATE',',UPDATE'))|| max(decode(privilege,'INSERT',',INSERT'))||' ON '||object_type||' "'||a.owner||'.'||table_name||'"' pv from dba_tab_privs a, dba_objects b where a.owner=b.owner and a.table_name = b.object_name and a.grantee='&usercheck' group by a.owner,table_name,object_type,grantee union select username grantee, '---' type, 'empty user ---' pv from dba_users where not username in (select distinct grantee from dba_role_privs) and not username in (select distinct grantee from dba_sys_privs) and not username in (select distinct grantee from dba_tab_privs) and username like '%&usercheck%' group by username order by grantee, type, pv;
Determinar os privilégios do sistema concedidos ao usuário
SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USER';
Verificar quais privilégios de tabela são concedidos por você a outros usuários.
SELECT * FROM USER_TAB_PRIVS_MADE
Verificar quais privilégios de tabela são concedidos a você por outros usuários
SELECT * FROM USER_TAB_PRIVS_RECD;
Verificar quais privilégios em nível de coluna são concedidos por você a outros usuários.
SELECT * FROM USER_COL_PRIVS_MADE;
Verificar quais privilégios em nível de coluna são concedidos a você por outros usuários
SELECT * FROM USER_COL_PRIVS_RECD;
Verificando quais privilégios são concedidos às funções
SELECT * FROM USER_ROLE_PRIVS;
Como conceder e revogar privilégios no Oracle
Objects grant/revoke from user grant select on dept to public; revoke select on dept from public; Objects grant/revoke from Role grant delete on dept to dept_role; revoke update on dept from dept_role;
Links relacionados
Gerenciando privilégios e funções do usuário:documentação do Oracle para referência adicional
Visualizações do Oracle:guia completo sobre como criar visualizações do oracle, descartar visualizações do oracle, alterar visualizações do oracle, como determinar a consulta da visualização já criada
criar table in oracle :As tabelas são a unidade básica de armazenamento de dados em um banco de dados Oracle. abordamos como usar o comando Oracle create table para criar uma tabela com uma chave estrangeira / chave primária , Como eliminá-los e alterá-los
criar usuário no oracle 12c :Descubra como criar um usuário comum no oracle 12c, criar usuários comuns e locais, criar função comum e função local e como gerenciá-los
Espero que goste do post. Por favor, forneça o feedback
Cursos recomendados
Aqui está o bom curso da Udemy para Oracle SQL
Oracle-Sql-Step-by-step:Este curso abrange sql básico, junções, criação de tabelas e modificação de sua estrutura, criação de exibição, união, união -tudo e muitas outras coisas . Um ótimo curso e curso obrigatório para iniciantes em SQL
O Curso Completo de Certificação Oracle SQL :Este é um bom curso para quem quer estar pronto para trabalhar com habilidades de desenvolvedor SQL. Um bom curso explicado
Oracle SQL Developer:Essentials, Tips and Tricks :A ferramenta de desenvolvedor Oracle Sql está sendo usada por muitos desenvolvedores. Este curso nos dá truques e lições sobre como usá-lo efetivamente e se tornar um desenvolvedor sql produtivo
Oracle SQL Performance Tuning Masterclass 2020 :O ajuste de desempenho é uma das habilidades críticas e mais procuradas. Este é um bom curso para aprender sobre isso e começar a fazer o ajuste de desempenho do sql