Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como criar um usuário no Oracle e atribuir privilégios


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 ], cria uma função. A atribuição de privilégios à função é feita usando o comando GRANT. A revogação de privilégios é feita usando o REVOKE FROM ROLE.

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