Pessoal,
Vejo
sempre uma confusão no que envolve users e schemas (usuários e esquemas), então
resolvi escrever um pouco e tentar esclarecer os conceitos envolvidos sobre
eles.
Segundo
John Watson e Roopesh Ramklass (OCP’s), para o ambiente Oracle um usuário é uma
pessoa que pode se conectar ao banco de dados. Ele terá um nome de usuário e
uma senha. Um esquema é um “contêiner” para os objetos de um usuário. Quando um
usuário é criado, seu esquema é criado também (só que vazio). Alguns esquemas
estarão sempre vazios: o usuário nunca criará quaisquer objetos porque não
precisará e pode ser configurado para que eles não tenham permissão para tal
ação. Nesse caso, os usuários deverão ter permissão para acessar objetos de
outros esquemas, de propriedades de outros usuários. Outros usuários serão o
oposto disso: eles terão muitos objetos mas nunca farão logon realmente no
banco de dados. Os objetos de esquema são objetos com um proprietário. O
identificador exclusivo de um objeto de um tipo específico não é seu nome, é o
seu nome prefixado por com o nome do esquema ao qual ele pertence.
Ex.:
WORKSPACE.TBL_TEST – indica uma tabela chamada TBL_TEST que é de propriedade do
usuário WORKSPACE.
Poderia
existir outra tabela: HOUSEWORK.TBL_TEST, que poderia ser uma tabela de
estrutura e/ou conteúdo diferente da anterior, de propriedade do usuário
HOUSEWORK e residindo em seu esquema.
Uma
quantidade de usuários (e seus esquemas) é criada automaticamente no momento de
criação do banco. Destacam-se entre eles o SYS e o SYSTEM. O usuário SYS possui
o dicionário de dados (que é um conjunto de tabelas que define o banco de dados
e seu conteúdo), possui também uma série de pacotes de PL/SQL (utilizados para
administrar e utilizar o banco). O esquema SYSTEM vários objetos adicionais que
são utilizados para administração e monitoramento da base de dados. Esses dois
esquemas não devem ser alterados através de comandos DML para que não ocorram
problemas dados corrompidos por exemplo.
É
uma boa prática, e na política da empresa que trabalho nós utilizamos, que
sejam criados usuários que terão seus esquemas com tabelas e demais objetos
para o armazenamento dos dados, e usuários (com esquemas vazios) para acessar
os dados via aplicação.
Exemplo:
- Usuário com esquema populado: WORKSPACE
- Usuário de aplicação: USER_WORKSPACE
Esse
usuário de aplicação terá direito de executar comandos DML nos objetos do
esquema WORKSPACE, mas a segurança e administração de um ambiente com essa
configuração é bastante interessante.
A
sintaxe para criação de um usuário é a apresentada na Figura
1 e exemplificada mais adiante (de forma básica).
Figura 1 - Sintaxe de criação de
usuário. (Fonte: Oracle Corporation)
CREATE USER WORKSPACE
IDENTIFIED BY SENHA
DEFAULT TABLESPACE TBS_USUARIOS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
Espero
ter ajudado com esse post.
Até
a próxima!
Referências:
Watson,
John; Ramklass, Roopesh (2010) – OCA Oracle Database 11g – Fundamentos I SQL –
Manual do Exame 1z0-051. Editora: ALTABOOKS.
Oracle
Corporation – CREATE USER. Disponível em http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_8003.htm.
Acessado em 10/03/2013.
0 comentários:
Postar um comentário