Conectando-se com um Privilégio Apropriado
Quando conectado a uma instância, os usuários normais não podem nem inicializar nem finalizar um banco de dados, pois este tipo de usuário é autenticado considerando o dicionário de dados. Desta forma, é impossível que este usuário inicialize ou crie um banco de dados, pois o dicionário de dados não está acessível até que o banco de dados tenha sido aberto.
Para inicializar/finalizar um banco de dados é necessário algum tipo de autenticação externa. Esta autenticação pode ser efetuada pelo sistema operacional ou por uma combinação usuário/senha existente no arquivo de senhas (externo).
Quando se conetar à instância, você informa a forma de autenticação apropriada no comando CONNECT através do seu processo de usuário.
As possíveis formas de conexão são:
- connect user/pass[@db]
- connect user/pass[@db] as sysdba
- connect user/pass[@db] as sysoper
- connect / as sysdba
- connect / as sysoper
No primeiro exemplo acima é utilizada a autenticação normal via dicionário de dados. Neste caso, o banco de dados precisa estar aberto e o usuário conectado (não importa quem seja) não pode emitir comandos startup ou shutdown.
Nos dois próximos exemplos o Oracle irá até o arquivo de senha para validar a combinação usuário e senha.
A autenticação via sistema operacional está exemplificada nos dois últimos exemplos. Nestes casos, o Oracle irá consultar o SO subjacente para verificar se o usuário que está executando o SQL*Plus é membro do grupo do SO que possui a propriedade do software Oracle. Se a verificação obtiver sucesso o usuário será logado como SYSDBA ou SYSOPER.
Um usuário que se conecte ao banco com qualquer uma das quatro últimas opções poderá emitir comandos startup ou shutdown e conectar-se sem se importar com o estado do banco de dados (aberto ou não, por exemplo).
Observe que nos três primeiros exemplos foi fornecido uma string de conexão com o banco de dados. Isso é necessário se a conexão for realizada através de uma rede. Obviamente, para a autenticação via SO isto não é necessário pois o usuário deve estar logado na máquina onde reside o servidor Oracle.
SYSOPER e SYSDBA
SYSOPER e SYSDBA são privilégios que possuem capacidades especiais e só são habilitados caso o usuário tenha sido autenticado por um método externo. Um usuário conectado com este privilégio pode emitir os seguintes comandos:
- STARTUP
- SHUTDOWN
- ALTER DATABASE [MOUNT | OPEN | CLOSE | DISMOUNT]
- ALTER [DATABASE | TABLESPACE] [BEGIN | END] BACKUP
- RECOVER
Já o privilégio SYSDBA permite emitir todos os comandos acima além de adicionar a capacidade de criar um banco de dados, fazer uma recuperação incompleta e criar outros usuários SYSOPER e SYSDBA.
Nenhum comentário:
Postar um comentário