(Parte 1 de 4)

Para estabelecermos acesso ao banco de dados ORACLE precisamos de um USER. Associado a cada usuário existe um SCHEMA.

Usuário e Schema são duas características de um banco de dados ORACLE extremamente relacionadas e indissolúveis.

Podemos controlar o acesso a um banco de dados ORACLE criando, alterando, removendo e monitorando usuários.

Um USUÁRIO é: ◊requerido para acesso ao banco de dados ;

◊necessário para cada aplicação do banco de dados;

◊definido no banco de dados;

O usuário está associado a acesso e segurança. Para que o ORACLE possa identificar e controlar o acesso aos objetos do banco, cada um de nós deve ter uma identificação que nos garanta privilégios para ler e/ou alterar informações no banco de dados. Esta identificação é o USER.

Quando o DBA cria um novo usuário, o ORACLE, simultaneamente, cria um SCHEMA (de mesmo nome) para este usuário.

Um SCHEMA corresponde a uma coleção de objetos pertencentes ao usuário que possui o mesmo nome do SCHEMA.

O SCHEMA está associado a armazenamento. Para que o ORACLE possa identificar a quem pertence determinado objeto e, por conseguinte, controlar o uso dos dados deve haver uma identificação, para cada objeto. Esta identificação física é o SCHEMA.

Um banco de dados possui um número variado de objetos. Alguns destes objetos pertencem a usuários e outros não.

Neste tópico conheceremos os objetos subordinados a usuários e os objetos administrativos, ou seja, aqueles que podem ser utilizados pelos usuários sem estarem subordinados a eles.

No grupo de objetos administrativos encontramos: TABLESPACES, USERS, PROFILES, ROLES, UNDO SEGMENTS e DIRECTORIES.

Estes objetos podem ser utilizados pelos diversos usuários do banco de dados e pertencem ao banco de dados como um todo. Nos próximos capítulos estaremos estudando a funcionalidade de cada um deles.

No grupo de objetos do usuário encontramos: TABELAS, TYPES, VIEWS, CLUSTERS, INDEXES, SNAPSHOTS, SEQUENCES, FUNCTIONS, PROCEDURES e PACKAGES.

Quando criamos um objeto de um dos tipos acima, obrigatoriamente, os subordinamos a usuários. Eles são criados nos SCHEMAS dos usuários e pertencem ao usuário dono do SCHEMA. Este usuário tem todos os privilégios sobre os objetos em seu SCHEMA.

A segurança do banco de dados gira em torno de permissão das ações do usuário no banco de dados e sobre os objetos dentro dele.

O modelo de segurança do ORACLE usa SCHEMA e privilégios para garantir o controle de acesso aos dados e para restringir o uso dos diversos recursos do banco de dados.

Os direitos de acesso de um usuário são controlados por diferentes características. Quando um DBA cria um novo usuário ele deve definir estes diversos aspectos, que envolvem:

◊Criação de username e password, com identificação de tablespace default e temporário.

◊Uma lista de tablespaces aos quais o usuário poderá ter acesso com as respectivas quotas de espaço para cada tablespace.

◊Os limites referentes aos recursos do sistema que o usuário poderá utilizar (tempo IDLE, tempo de processados, quantidade de I/Os, etc).

◊Identificação dos privilégios relativos a operações sobre o banco de dados e sobre outros objetos.

Uma característica implementada na versão 9i, no comando Alter Session é a possibilidade de alterarmos o schema corrente (sem alteração do usuário corrente).

A alteração de schema faz com que as referências feitas sem qualificação sejam direcionadas para o schema especificado no comando. Isto é uma forma prática de acesso a dados que estão em outro usuário.

Esta característica, no entanto, não dá privilégios especiais ao usuário. Para que o acesso seja possível, ele deve ter os privilégios necessários sobre o objeto desejado.

A autenticação corresponde ao momento que o usuário solicita conexão ao banco de dados e este reconhece este como sendo um usuário válido para acesso ao banco de dados.

A autenticação pode ser feita :

◊pelo sistema operacional ◊por um serviço de rede

◊pelo banco de dados Oracle

Os três métodos podem ser usados para uma mesma instância do banco de dados.

Para garantir a segurança o Oracle criptografa as passwords durante a transmissão. Os DBAs necessitam de procedimentos de autenticação especiais uma vez que executarão operações especiais sobre o banco de dados.

Conheceremos a seguir cada um destes métodos de autenticação.

Alguns sistemas operacionais permitem que o Oracle use informações mantidas por ele para autenticação dos usuários.

Como benefícios deste método, temos:

◊O usuário pode estabelecer conxão ao Oracle sem especificar um USERNAME e PASSWORD. Por exemplo o usuário pode acionar o SQL*Plus e informar apenas /. O UNIX é um sistema operacional que suporta esta característica. Já o Windows não.

◊O controle sobre autorização do usuário está centralizado no sistema operacional. O Oracle não precisa gerenciar e armazenar PASSWORDS. Os USERS são mantidos no banco de dados.

◊As entradas na trilha de audit têm correspondência entre o usuário do sistema operacional e o do ORACLE.

AUTENTICAÇÃO PELA REDE O ORACLE suporta diversos métodos de autenticação pela REDE, como veremos a seguir:

◊THIRD PARTY-BASED AUTHENTICATION TECHNOLOGIES – se houverem serviços de autenticação de rede tais como DCE, Kerberos ou SESAME, o ORACLE aceita a autenticação feita por este serviço.

Para que possamos utilizar serviços de autenticação de rede com o ORACLE, precisamos do Oracle Enterprise Edition com Oracle Advanced Security option.

◊PUBLIC KEY INFRASTRUCTURE-BASED AUTHENTICATION - autenticação baseada em uma sistema de criptografia com chave pública usam um certificado digital para os usuários (clientes), que usam-nos para autenticar diretamente para os servidores sem envolvimento de um servidor de autenticação.

O Oracle fornece uma infraestrutura de chave pública (PKI) para deste método, que consiste dos seguintes componentes:

oGerenciamento da autenticação e de chave segura usando Secure Sockets Layer (SSL).

oOracle Call Interface (OCI) e funções em PL/SQL para sinalizar os dados definidos pelo usuário utilizando chave privada e certificado e para verificar a assinatura dos ddados usando um certificado e validação.

oOracle wallets que são estruturas de dados que contém uma chave privativa do usuário, um certificado do usuário e um conjunto de pontos de validação.

oOracle Wallet Manager que proteje as chaves do usuário e gerencia certificados X.509v3 em clientes e servidores Oracle.

oCertificados X.509v3 que devemos obter de uma autoridade em certificação

(não Oracle). Os certificados são carregados nos Oracle wallets para habilitar a autenticação.

oDirectory-enabled Oracle Security Manager que fornece privilégios centralizados de gerenciamento para que a administração seja simplificada e o nível de segurança incrementado.

Permite que armazenemos e recuperemos roles do Oracle Internet Directory ou de qualquer diretório compatível com o Lightweight Directory Access Protocol (LDAP).

oOracle Internet Directory que é um diretório LDAP v3-compliant construído no

Oracle. Ele permite que gerenciemos o usuário e o ambiente de configuração do sistema incluindo atributos de segurança e privilégios para usuários autenticados usando certificados X.509.

O Oracle Internet Directory assegura controle de acesso a nível de atributo, sendo possível restringir os privilégios de leitura, gravação ou atualizado em atributos específicos para usuários específicos. Ele também suporta proteção e autenticação de directory queries através de criptografia SSL.

oPara usarmos este método descrito acima precisamos do Oracle Enterprise Edition com Oracle Advanced Security option.

◊REMOTE AUTHENTICATION – o Oracle suporta este tipo de autenticação através do Remote Dial-In User service (RADIUS), um protocolo padrão usado para autenticação, autorização de contabilização de usuários.

Para usarmos este método descrito acima precisamos do Oracle Enterprise Edition com Oracle Advanced Security option

O ORACLE autentica os usuários que tentarem estabelecer conexão com o banco de dados utilizando informações armazenadas no próprio banco de dados.

A tempo de criação do usuário especificamos uma PASSWORD que deve ser fornecida a tempo de conexão e validada pelo Oracle. A PASSWORD está armazenada no banco de dados em um formato criptografado para maior segurança.

Desta forma, a informação mais preciosa e que deve ter maiores cuidados tanto no armazenamento quanto no fornecimento (por parte do usuário) é a PASSWORD.

Opções visando o aumento do nível de confidencialidade.

◊PASSWORD ENCRYPTION WHILE CONNECTING – O Oracle permite que criptografemos as passwords durante as conexões pela rede (cliente-servidor e servidor-servidor). Se habilitarmos esta funcionalidade em máquinas cliente e máquinas servidoras, o Oracle criptografa as paswords usando um algoritmo DES (Data Encryption Standards) modificado antes de enviá-la pela rede. Isto pode ser bastante útil em ambientes distribuídos.

◊ACCOUNT LOCKING – O Oracle poderá bloquear um usuário se houver falha na tentativa de conexão após um determinado número de tentativas. Podemos determinar que o usuário seja desbloqueado automaticamente após um determinado intervalo de termpo ou somente pelo DBA. Estas especificações são feitas com o objeto PROFILE (será visto no curso).

◊PASSWORD LIFETIME AND EXPIRATION – com esta característica podemos especificar um tempo de vida para as passwords. Após este período ela torna-se inválida e deve ser modificada antes da conexão ser autorizada. Na primeira tentativa de conexão após a password ter expirado o usuário entra em um período de “graça” e uma mensagem de aviso é apresentada a cada tentativa de conexão durante este período. Quando o tempo determinado tiver terminado sem que o usuário tenha trocado a password, o usuário é bloqueado e, somente, será liberado pelo DBA.

◊PASSWORD HISTORY – esta opção verifica as password especificadas ultimamente para garantir que o usuário não repita uma password durante um determinado tempo ou quantidade de vezes. O objeto PROFILE deve ser usado para estabelecer as regras deste histórico.

◊PASSWORD COMPLEXITY VERIFICATION – esta opção garante que a password seja complicada o suficiente para que “intrusos” tenham dificuldade em descobri-la. A rotina de verificação de complexidade da Oracle exige que a password: oTenha um mínimo de 4 caracteres de comprimento.

oNão seja igual ao USERID. oInclua pelo menos um caracter alfanumérico, um caracter numérico e um caracter de pontuação. oNão seja igual a uma lista interna de palavras simples como welcome, account, database, user, etc. oSeja diferente da password anterior em pelo menos 3 caracteres.

Uma vez que o DBA executa operações especiais que não devem ser realizadas por usuários comuns, o Oracle cria um esquema de autenticação mais seguro para DBAs.

Podemos escolher entre autenticação pelo sistema operacional ou através de um arquivo de passwords.

Em muitos sistemas operacionais a autenticação pelo sistema operacional requer que o usuário do DBA (que é o mesmo no SO e no ORACLE) seja colocado em um grupo especial (grupo dba no UNIX).

O banco de dados usa arquivos de passwords para garantir o acesso de usuários que tenham recebido um dos privilégios: SYSDBA ou SYSOPER. Com estes privilégios o DBA poderá realizar as seguintes ações:

◊SYSOPER – permite que executemos STARTUP, SHUTDOWN, ALTER DATABASE OPEN / MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, RECOVER e inclui o privilégio RESTRICTED SESSION.

◊SYSDBA – contém todos os privilégios de sistema com a opção WITH ADMIN OPTION, o privilégio de sistema SYSOPER, permite a execução do comando CREATE DATABASE e recuperação baseada em tempo.

Em ambientes multi-camadas, o Oracle controla a segurança das aplicações que estiverem no servidor de aplicações (middle-tier), limitando seus privilégios, preservando a identidade do cliente am todas as camadas e auditando ações feitas em nome dos clientes.

Neste tipo de arquitetura um servidor de aplicações fornece dados para clientes e servidores como um elemento intermediário entre os clientes e os diversos servidores de banco de dados.

Nesta arquitetura podemos usar um servidor de aplicações para validar as credenciais de um cliente (por exemplo um web browser). O servidor de banco de dados pode, também, auditar operações realizadas pelo próprio servidor de aplicação e as que ele fizer em nome dos clientes.

A autenciação em ambientes multi-camadas é baseado em “trust regions”, da seguinte forma:

◊O cliente fornece uma prova de autenticação para o servidor de aplicação: usando uma password ou um certificado X.509.

◊O servidor de aplicação verifica a autenticação do cliente e, então, autentica a si mesmo para o servidor de banco de dados.

◊O servidor de banco de dados verifica a autenticação do servidor de aplicação, verifica se o cliente existe e, verifica se o servidor de aplicação tem o privilégio de estabelecer conexão para este cliente.

Se forem usadas ROLES para autenticação (observar o comando ALTER USER a seguir) o servidor de banco de dados também verifica:

◊Se o cliente tem estas roles.

◊Se o servidor de aplicação tem o privilégio de estabelecer conexão em nome deste usuário usando estas roles.

Outras características deste ambiente não serão detalhadas neste curso. O curso que aborda e estuda a montagem de um ambiente de rede é Oracle Administração de Redes.

A criação de um novo usuário requer a especificação de algumas características (já comentadas superficialmente anteriormente), como veremos a seguir:

◊Tablespace Default – especifica onde os objetos serão criados, se nenhum Tablespace for definido durante os comandos CREATE TABLE, CREATE INDEX ou CREATE CLUSTER.

◊Tablespace Temporário – especifica uma área para armazenamento de dados temporários. Este tablespace é, particularmente, utilizado em operações que necessitem de ordenação.

◊Cotas em Tablespace – determina o máximo de espaço que o usuário pode consumir para cada tablespace (uma cota 0 torna o tablespace inacessível). Por default cada usuário não tem direito de armazenamento (QUOTA) em nenhum Tablespace. Desta forma se o usuário precisar criar qualquer objeto deve ser atribuído a este usuário uma quantidade de área em um dos Tablespaces da instalação ou privilégio para criação do objeto no SCHEMA de um outro usuário que tenha espaço disponível.

◊Limites de recursos do sistema - Inclui o tempo de CPU, o número de leituras lógicas, o número de sessões concorrentes por usuários, e o tempo inativo por sessão, especificado através de PROFILES.

◊Características de controle para PASSWORD – este assunto, apesar de bastante comentado, requer uma especificação. Podemos determinar um padrão de controle para a instalação que se aplique a todos os usuários que viermos a criar. Definiremos, então a freqüência de troca da password, seu layout, validação de texto, etc.

Cada banco de dados contém um grupamento chamado PUBLIC. Poderíamos dizer que se trata de um usuário com características especiais, porém a Oracle considera um grupamento e não (exatamente) um usuário.

O grupamento PUBLIC fornece acesso público a objetos do banco de dados subordinados a um SCHEMA e estabelece privilégios comuns a todos os usuários. Todos os usuários do banco de dados pertencem ao grupamento PUBLIC.

(Parte 1 de 4)

Comentários