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!