Olá.
Esta é uma dúvida bem conceitual. Estudando para a prova 1Z0-047 vejo pela explicação sobre NAMESPACES que os objetos ROLES, USERS e PUBLIC SYNONYMS ocupam um namespace no database.
Logo, não posso criar uma ROLE com o mesmo nome de um USER. Mas consigo criar um PUBLIC SYNONYM com o mesmo nome de um USER. Consigo também criar um PUBLIC SYNONYM com o mesmo nome de uma ROLE.
Sendo assim não é mais correto afirmar que PUBLIC SYNONYM ocupa um namespace diferente de ROLES e USERS, que por sua vez ocupam um outro namespace em comum ?
Dúvida sobre Namespaces
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Oi Ademilton,
Engraçado, tentei reproduzir suas afirmações em minha base 11g com os mesmos resultados.
Acho que - com base em sua experiência - podemos considerar o PUBLIC SYNONYM como um NAMESPACE "à parte", sendo que ROLES e USER compartilham do mesmo NAMESPACE.
Mas para efeito do exame 1Z0-047, você deve considerar sempre que USER,ROLE e PUBLIC SYNONYM compartilham do mesmo NAMESPACE.
Procurei sobre o tema nos manuais da ORACLE, mas não encontrei nenhuma observação sobre este tema. Pode ser que algum forista possa indicar alguma passagem na documentação sobre NAMESPACES.
Abraços,
Sergio
Engraçado, tentei reproduzir suas afirmações em minha base 11g com os mesmos resultados.
SQL> CREATE USER LIXO IDENTIFIED BY LIXO;
User created.
SQL> CREATE ROLE LIXO;
CREATE ROLE LIXO
*
ERROR at line 1:
ORA-01921: role name 'LIXO' conflicts with another user or role name
SQL> CREATE PUBLIC SYNONYM LIXO FOR DUAL;
Synonym created.
Acho que - com base em sua experiência - podemos considerar o PUBLIC SYNONYM como um NAMESPACE "à parte", sendo que ROLES e USER compartilham do mesmo NAMESPACE.
Mas para efeito do exame 1Z0-047, você deve considerar sempre que USER,ROLE e PUBLIC SYNONYM compartilham do mesmo NAMESPACE.
Procurei sobre o tema nos manuais da ORACLE, mas não encontrei nenhuma observação sobre este tema. Pode ser que algum forista possa indicar alguma passagem na documentação sobre NAMESPACES.
Abraços,
Sergio
Olá.
Grato pelo retorno.
Este trecho da documentação parece confirmar o raciocínio de que os objetos do PUBLIC ocupam um namespace à parte:
(extraído de http://docs.oracle.com/cd/E21901_01/doc ... m#TTSQL445 )
Fico pensando no seguinte... se fixar a idéia de que o mesmo NAMESPACE abriga USER, ROLE e PUBLIC SYNONYM, e cair uma questão simplesmente demonstrando uma sequencia de comandos como esta que você testou e pedindo para responder quais executariam com sucesso e quais falhariam... eu não estaria propenso a errar ?
Grato pelo retorno.
Este trecho da documentação parece confirmar o raciocínio de que os objetos do PUBLIC ocupam um namespace à parte:
"If the object name provided is not qualified with the user that owns it, then the search order for an object is as follows:
Search for any match from all object names within the current user namespace. If there is a match, the object name is resolved.
If no match is found in the user namespace, search for any match from the PUBLIC namespace, which contains objects such as public synonyms. Public synonyms are pre-defined for SYS and TTREP objects. If there is a match, the object name is resolved. Otherwise, the object does not exist."
Fico pensando no seguinte... se fixar a idéia de que o mesmo NAMESPACE abriga USER, ROLE e PUBLIC SYNONYM, e cair uma questão simplesmente demonstrando uma sequencia de comandos como esta que você testou e pedindo para responder quais executariam com sucesso e quais falhariam... eu não estaria propenso a errar ?
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Ademilton,
Já cheguei a ler várias documentações e materiais de preparação para este exame, e tudo o que me ensinaram foi que USER/ROLES/PUBLIC SYNONYM ficam na mesma tablespace, o que não seria 100% verdadeiro, conforme o que você mesmo pode comprovar.
Acho que se cair uma questão de NAMESPACE na prova, é bem provável que não apareça uma questão colocando estas alternativas:
Na ausência da alternativa "B", responda então "A", mesmo sabendo que isso não é 100% verdade.
É mais uma sugestão, ok?
Abraços,
Sergio
Já cheguei a ler várias documentações e materiais de preparação para este exame, e tudo o que me ensinaram foi que USER/ROLES/PUBLIC SYNONYM ficam na mesma tablespace, o que não seria 100% verdadeiro, conforme o que você mesmo pode comprovar.
Acho que se cair uma questão de NAMESPACE na prova, é bem provável que não apareça uma questão colocando estas alternativas:
Se por acaso ocorrer uma situação como esta ("A","B") diria para responder "B".A) A same namesplace for USER, ROLES AND PUBLIC SYNONYMS
B) A same namesplace for USER AND ROLES
C) Outras ...
Na ausência da alternativa "B", responda então "A", mesmo sabendo que isso não é 100% verdade.
É mais uma sugestão, ok?
Abraços,
Sergio
Valeu mais uma vez !!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes