Estamos vivendo um cenário dinâmico e em constante evolução no que se refere ao gerenciamento de bancos de dados. Uma das solicitações comuns que recebo de meus clientes é como criar um novo usuário no Oracle 12c R2 com certos requisitos específicos. Neste artigo, abordaremos uma solicitação que recebi recentemente de um cliente e explicaremos cada etapa em detalhes.

O cliente deseja:

  1. Que a sessão do usuário seja encerrada após uma hora de inatividade.
  2. A tablespace padrão seja ‘ts_data’, não ‘users’.
  3. Que o usuário tenha privilégios na tablespace ‘ts_index’.
  4. Que o usuário tenha acesso completo a todos os objetos do sistema do owner ‘SISTEMA’.

Vamos analisar cada requisito um por um:

Etapa 1: Criação do Profile

A primeira solicitação pode ser atendida por meio da criação de um PROFILE no Oracle. O profile é um conjunto de limites na utilização de recursos do sistema e pode ser atribuído a um ou mais usuários. No nosso caso, queremos limitar o tempo de inatividade do usuário para 60 minutos. Para isso, utilizamos o seguinte comando SQL:

CREATE PROFILE idle_profile LIMIT IDLE_TIME 60; -- 60 minutos de tempo ocioso

Este comando cria um profile chamado ‘idle_profile’ que limita o tempo de inatividade do usuário a 60 minutos.

Etapa 2: Criação das Tablespaces

A próxima etapa é a criação das tablespaces ‘ts_data’ e ‘ts_index’. Uma tablespace no Oracle é uma unidade lógica de armazenamento. Vamos usar os seguintes comandos para criar essas tablespaces:

<code>CREATE TABLESPACE ts_data DATAFILE 'ts_data.dbf' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

CREATE TABLESPACE ts_index DATAFILE 'ts_index.dbf' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

Esses comandos criam tablespaces com um tamanho inicial de 500MB e com a opção AUTOEXTEND ativada, o que significa que as tablespaces serão automaticamente estendidas quando o espaço acabar, em incrementos de 10MB.

Etapa 3: Criação do Usuário

Agora vamos para a criação do usuário. A tabela de espaço padrão será ‘ts_data’ e o perfil será ‘idle_profile’, conforme a solicitação do cliente:

CREATE USER myuser IDENTIFIED BY mypassword 
DEFAULT TABLESPACE ts_data 
TEMPORARY TABLESPACE temp 
PROFILE idle_profile;

Este comando cria um novo usuário chamado ‘myuser’ com a senha ‘mypassword’, atribui ‘ts_data’ como tablespace padrão, define ‘temp’ como tablespace temporária e aplica o profile ‘idle_profile’ ao usuário.

Etapa 4: Concessão de Privilégios

A próxima etapa é conceder os privilégios ao usuário. Queremos que o usuário tenha acesso à ‘ts_index’ e, por isso, concedemos quotas ilimitadas a ele nesta tablespace:

GRANT CONNECT, RESOURCE TO myuser;
ALTER USER myuser QUOTA UNLIMITED ON ts_data;
ALTER USER myuser QUOTA UNLIMITED ON ts_index;

Os comandos acima concedem ao usuário ‘myuser’ os privilégios de conexão e de recurso, além de quotas ilimitadas nas tablespaces ‘ts_data’ e ‘ts_index’.

Etapa 5: Acesso aos Objetos do Sistema

Por fim, vamos conceder ao usuário acesso total a todos os objetos do sistema do owner ‘SISTEMA’. Para isso, usaremos o seguinte bloco de comandos:

BEGIN
  FOR t IN (SELECT table_name FROM all_tables WHERE owner = 'SISTEMA') LOOP
    EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON SISTEMA.' || t.table_name || ' TO myuser';
  END LOOP;
END;
/

Este bloco de código percorre todas as tabelas do owner ‘SISTEMA’ e concede privilégios de SELECT, INSERT, UPDATE e DELETE para o usuário ‘myuser’.

Lembre-se de que conceder todos os privilégios a um usuário pode levar a problemas de segurança. Sempre conceda apenas os privilégios que são absolutamente necessários.

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: