1
resposta

Qual a diferença entre owner, user, e schema no Oracle

Qual a diferença entre owner, user, schema e tabela no Oracle? Poderia dar um exemplo prático?

1 resposta

No fundo Owner, User e Schema são a "mesma coisa". Ou seja, um User é qualquer usuário que criamos no Oracle, seja apenas para conectar no servidor, ou para ser Dono (owner) de objetos (tabelas, procedures, triggers, etc). Então um Schema nada mais é que um User, onde temos objetos do Oracle. Por isso quando se cria um User, automaticamente se cria um Schema, e qualquer objeto Oracle criado dentro do Schema é de propriedade desse User. Agora, existem usuários sem objetos, mas com permissões para ver, alterar e executar objetos de outros usuários. Tabela é um tipo de objeto do banco de dados, e é onde armazenamos informações. Vamos para alguns exemplos: 1 - Tenho um usuário chamado User_Admin que criei com a função de administrar o banco de dados. Ele não precisa ter nenhum objeto em seu Schema, mas ele vai precisar de Permissões (Roles) para realizar o trabalho de administrar, ou seja, ver como estão as conexões, usuários, objetos, tamanho e ocupação de espaço, entre outras rotinas administrativas. 2 - Criamos um segundo usuário chamados por exemplo User_Data que será o Owner (proprietário) de objetos Tabelas, ou seja, ele será o dono da estrutura física (e modelo lógico) do banco de dados. Ou seja, qualquer objeto que armazene dados será criado nesse Schema. 3 - Criamos um terceiro usuário chamado por exemplo User_Procs onde criaremos todos os objetos com processos (Procedure, Functions, Packages). Esse será o Owner (proprietário) dos objetos com código-fonte em linguagem PL/SQL que é a linguagem de programação do Oracle. 4 - E por exemplo criamos um usuário chamado User_Exec que não será dono de nenhum objeto do banco de dados, mas terá por exemplo, as permissões para ler e alterar dados de tabelas (select, insert, delete e update) do User_Data e terá direitos de executar processos do User_Procs. Resumindo, um usuário User pode ser proprietário Owner de objetos (ou não), mas qualquer User terá um Schema que pode ou não ter objetos. Além disso, qualquer User deve ter permissões para fazer aquilo que é sua atribuição: Administrar, Executar, Agrupar objetos... organizando sua estrutura de banco de dados. É uma explicação superficial (eu sei), mas para começar no mundo Oracle é um bom começo.