Quinta-feira, 17 de maio de 2007 às 09h00

Gerenciando Usuários no Oracle 10g

Conheça o curso a distância: Desenvolvimento de Plugins para Wordpress

Olá pessoal! O Oracle 10g gerencia e controla a segurança dos objetos criados em cada conta de usuários. Isso inclui:

  • Clusters
  • Índices
  • Tabelas
  • Views
  • Sequences

Cada banco de dados Oracle possui uma lista de usuários válidos, identificados por USERNAMES.

Todos os usuários são cadastrados no Dicionário de Dados do Banco em tabelas e views consultados pelo DBA. Quando o usuário do Banco de Dados é criado, um Schema correspondente com mesmo nome é criado para o usuário.

Um Schema é o conjunto de informações sobre o USERNAME. Isso inclui:

  • Username
  • Password
  • Privilégios permitidos
  • Tablespaces de seus objetos
  • Quotas nas Tablespace
  • Profile
  • Role

Agora que já entendemos o que vem a ser um usuário no Oracle, veremos como criar, alterar, excluir e monitorá-los.

Criando um novo usuário:

SQL> CREATE USER [Usuário]

IDENTIFIED BY [Senha/Externally/Globally as]

DEFAULT TABLESPACE [Nome Default]

TEMPORARY TABLESPACE [Nome Temporária]

PROFILE [Nome Profile]

QUOTA [K/M/Unlimited]

ON [Tablespace]

PASSWORD EXPIRE

ACCOUNT [Lock/Unlock]

Onde:

  • Usuário - Nome do usuário a ser criado.
  • Senha - Especifica a senha do usuário.
  • Externally - Verifica o acesso do usuário através do sistema operacional.
  • Globally As - Especifica que o usuário será autenticado por um sistema externo de Gerenciamento de Segurança (Oracle Security Server) ou outro Sistema de Gerenciamento de autenticação.
  • Default Tablespace - Identifica a Tablespace onde serão criados os objetos dos usuários.
  • Temporary Tablespace - Identifica a Tablespace para segmentos temporários.
  • Profile - O nome do Profile associado ao usuário.
  • Quota - Especifica o valor da quota na Tablespace
  • Unlimited - Permite ao usuário alocar espaço dentro de uma Tablespace sem limites.
  • On - Especifica o nome da Tablespace cujo espaço será controlado peça Quota.
  • Password Expire - Torna a senha do usuário extinta, solicitando uma nova senha no próximo login.
  • Lock - Desabilita o login.
  • Unlock - Habilita o login.
Exemplo:

SQL> CREATE USER iMasters

IDENTIFIED BY Revista

DEFAULT TABLESPACE User_Data

TEMPORARY TABLESPACE User_Temp

PROFILE [Nome Profile]

QUOTA 15M ON User_Data

QUOTA 10M ON User_Temp

PASSWORD EXPIRE

ACCOUNT Unlock

PROFILE Default;

Alterando um Usuário:

SQL> ALTER USER <Usuário>

<Opções a serem alteradas> <Novo Valor>

DEFAULT TABLESPACE [Nome Default]

Exemplo:

SQL> ALTER USER iMasters

QUOTA 5M ON User_Data;

Excluindo um Usuário:

SQL> DROP USER <Usuário> [CASCADE]

<Opções a serem alteradas> <Novo Valor>

DEFAULT TABLESPACE [Nome Default]

Onde:

CASCADE Permite a exclusão de todos os objetos associados ao usuário.

Essa opção somente será usado em raras exceções. Quando o usuário é excluído com a opção CASCADE, o Username e seu Schema associado são removidos do Dicionário de Dados e todos objetos contidos no usuário são imediatamente excluídos.

Exemplo:

SQL> DROP USER Imasters;

Monitorando Usuários:

O Oracle armazena, no Dicionário de Dados, informações completas de todos os usuários do banco.

Views do Dicionário de Dados:

  • DBA_USERS - Descreve todos os usuários do Banco de Dados
  • ALL_USERS - Lista os usuários visíveis ao usuário atual, mas não os descreve
  • USER_USERS - Descreve somente o usuário atual
  • DBA_TS_QUOTAS - Descreve as quotas da Tablespace
  • USER_TS_QUOTAS - Descreve as quotas da Tablespace
  • USER_PASSWORD_LIMITS - Descreve os parâmetros do perfil da senha que são atribuídos ao usuário
  • USER_RESOURCE_LIMITS - Indica os limites do recurso para o usuário atual
  • DBA_PROFILES - Indica todos os perfis e seus limites
  • RESOURCE_COST - Lista o custo para cada recurso
  • VSESSION - Lista a informação da sessão para cada sessão atual, incluí o nome do usuário
  • VSESSTAT - Lista as estatísticas da sessão do usuário
  • PROXY_USERS - Descreve os usuários que podem assumir a identidade de outros usuários

Todas as consultas às tabelas ou visões do Dicionário de Dados só serão possíveis com privilégio adequado.

Exemplo:

Mostrando informações dos usuários, a partir do Dicionário de Dados:

SQL> SELECT USERNAME, PROFILE, ACCOUNT_STATUS

FROM DBA_USERS;

USERNAME	PROFILE	     ACCOUNT_STATUS  
----------------          	--------------        ---------------------------- 
SYS             	                     DEFAULT         OPEN            
SYSTEM          	DEFAULT         OPEN            
IMASTER         	DEFAULT         OPEN           

Mostrando informações sobre a quantidade de espaço que um usuário pode usar nas Tablespaces, a partir do Dicionário de Dados:

SQL> SELECT *

FROM DBA_TS_QUOTAS

WHERE USERNAME IMASTER;

TABLESPACE    USERNAME    BYTES     MAX_BYTES    BLOCKS    MAX_BLOCKS
-------------------    ---------              ----------     -----------------     -----------     --------------------
USERS                 IMASTER         0                512000               0                  250

Para maiores detalhes e informações, você pode ler a Oracle Database Security Guide

(disponível para download no endereço http://www.oracle.com/pls/db102/homepage )

Por hoje é tudo pessoal. Até o próximo artigo!

1 comentário

 Alexandre Ferres Fernandes
03/02/2009 10h36

Boa matéria

Gostei da matéria muito legal gostaria como eu faço para conseguir mais informações sobre oracle tutorias simples e dinamicos pois estou começando agora.

Cancelar resposta

Qual a sua opinião?

Se você já possui conta iMasters, o login será feito abaixo.

Atenção: comentários considerados spams e/ou ofensivos serão moderados.
Sobre o Autor
André Antunes é Analista Oracle na Siemens Business Services e instrutor na WorldSoft Treinamentos. Possuí as certificações: Oracle Database 10g Administrator Certified Associate, ITIL e COBIT.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.