Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-28 Por tôpico Paulo
Entendi Reginaldo, cabe então a tomada de uma decisão no sentido de
como serão acessadas as tablespaces de uma Base. Achei alguns artigos
sobre tablespaces que me clarearam a forma na qual o Oracle administra
seus dados, em visão Lógica e Física.

Agora eu tive a seguinte situação questionada por um desenvolvedor:
Criei um usuário que pode apenas fazer select em algumas tabelas
(medida de segurança). Mas através da ferramenta Oracle SQL Developer
para quem estiver utilizando este usuário, precisa alcançar um caminho
mais longo para acessar a tabela (Other Users, UserName, Table).

Existe alguma forma de criar um Alias (diferente do sinonym) que
este usuário se identifica com a tabela assim como o próprio Owner?

Não sei se fui claro na explicação, mas para desenvolvedor a forma
mais simples que a tabela pode ser buscada é a forma mais desejada. rs

Atenciosamente,

Paulo Andrade
MobileCard
[EMAIL PROTECTED]







--- Em oracle_br@yahoogrupos.com.br, Reginaldo Ribeiro
[EMAIL PROTECTED] escreveu

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Ao meu ver, a principal implicação é a administração. Você cria com
 seu usuário Paulo uma table chamada tabela. Depois, com seu user
 Paulo2 você cria uma table chamada table2. Aí, com o mesmo usuário
 Paulo2, você cria um sinônimo público chamado tabela, apontando para
 Paulo2.table2. Aí você sai de férias em dezembro (porque é clt e
 antigo na empresa) e quando volta em janeiro têm um novo projeto
 gigantesco. A próxima vez que você olhar esses objetos, lá por julho
 do ano que vêm, você vai ter que ficar caçando os objetos porque não
 se lembra mais que tabela é um sinônimo público apontando para um
 objeto cujo nome não tem relação aparente com o nome do sinônimo.
 Alguns sinônimos públicos, tudo bem... Mas como você já falou em
 equipe de desenvolvimento... Eu iria devagar com isso e passaria a
 pensar mais em sinônimos privados apenas.
 De qualquer forma, é sua a decisão. Qualquer coisa, estamos por aí.
 
 
 Ribeiro, Reginaldo
 Administrador de Bancos de Dados
 Oracle Certified Associate 10g
 - 
 DBCom Brazil Consultoria em Tecnologia da Informação
 skype: rflribeiro
 mobile: 551192344290
 fone: 551135225172
 e-mail: [EMAIL PROTECTED]
 site: http://www.dbcom.com.br
 Chave Pública:

http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
 
 
 
 Paulo wrote:
 
  Fantástico, era exatamente este meu problema:
 
  Para acessar a tabela de outro usuário eu preciso colocar o OWNER
  antes do nome da tabela como: OWNER.nometabela como assinalado.
 
  Mas posso também criar um Sinonimo como Reginaldo me indicou
  através do e-mail, solução fantástica que facilita para os
  desenvolvedores quando criarei usuários com permissões diferentes.
  Muito obrigado mesmo pela ajuda!
 
  Agora só por uma questão conceitual: Devo adotar então que esta é a
   forma única ou a melhor forma para realizar a divisão de acesso de
  uma tabela dentre alguns usuários? É possível uma tabela possuir
  mais de um OWNER(tenho absoluta certeza que não, mas para checar)?
  O uso de sinônimos do tipo public é um recurso utilizado(penso em
  questões de segurança)? Enfim preciso de um argumento interessante
  para convencer a minha chefe que esta é a solução mais
  interessante.
 
  Um abração!
 
  --- Em oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br, Reginaldo Ribeiro
  rflribeiro@ escreveu
 
  -BEGIN PGP SIGNED MESSAGE- Hash: SHA1
 
  Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
  inclusive, lhe enviei um exemplo imenso em pvt contendo,
  inclusive, instruções para lidar com sinônimos de objetos e links
  de referência. Seria interessante informar se sua dúvida está
  sanada. Obrigado.
 
 
  Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle
  Certified Associate 10g -
   DBCom Brazil
  Consultoria em Tecnologia da Informação skype: rflribeiro mobile:
  551192344290 fone: 551135225172 e-mail: rflribeiro@ site:
  http://www.dbcom.com.br http://www.dbcom.com.br Chave Pública:
 
 
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
  
 
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
 
 
 
 
  Rafael Almeida Milanez wrote:
 
  Vamos la para simulação
 
  [EMAIL PROTECTED]show user USER é PAULO
 
  [EMAIL PROTECTED]create table T_TSE 2 ( cod number);
 
  Tabela criada.
 
  [EMAIL PROTECTED]grant create session to paulo2 ;
 
  [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;
 
  Concessão bem-sucedida.
 
 
  Agora conecto com Paulo2
 
  [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user USER é 
  PAULO2
 
  Ai esta a diferença, voce tem que colocar o OWNER.tabela
 
  [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE; 
  select *
  from T_TSE * ERRO na linha 1: ORA-00942: table or 

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-28 Por tôpico Reginaldo Ribeiro
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Antes da dúvida, só mais uma observação. O acesso a segmentos nos
tablespaces, no seu caso, é uma coisa secundária na sua dúvida. Este
tipo de tarefa é mais voltada à administração e infra-estrutura.
Desvincule-se desta visão. Pense no acesso aos objetos e não no acesso
a determinado tablespace. Mesmo que você conceda grant de unlimited
tablespace a um determinado usuário ele não poderá ver objetos de
outros usuários, sacou?
Em relação à dúvida: A forma de acessar informações no raptor
(sqldeveloper) é irrelevante. Cada ferramenta têm seu formato próprio.
No raptor, você poderá criar conexões específicas para o usuário owner
dos objetos se não quiser percorrer todo o caminho (other users,
etc...) que mencionou. Atrelar a administração dos dados à uma
ferramenta é um tiro no pé. Se ainda fosse ao formato de acesso de uma
determinada linguagem de programação... As soluções que eu proporia a
seus desenvolvedores seriam views, sinônimos privados ou snônimos
públicos. No caso das views e sinônimos privados, cada usuário teria
que ter a/o sua/seu apontando para os objetos do outro schema que se
quer acessar. No caso do sinônimo público, você cai no problema
mencionado anteriormente, de administração. Cada decisão tem suas
consequências e cabe a você decidir o que fazer ou não.
Eu não perderia tanto tempo tentando prover ao desenvolvedor meios de
acessar os dados de forma gráfica rapidamente. O meio mais rápido
(ainda não inventaram outro) é SELECT COLUNA FROM OWNER.OBJETO; no
sqlplus.

P.S. Se os desenvolvedores reclamarem, ameace utilizar nomes
científicos de animais invertebrados marinhos como nomes de atributos
das tabelas.
SELECT /MacrodactylaDoreensis// FROM tb_cliente order by 1;/
(brincadeira, hein!?)

Boa sorte.


Ribeiro, Reginaldo
Administrador de Bancos de Dados
Oracle Certified Associate 10g
- 
DBCom Brazil Consultoria em Tecnologia da Informação
skype: rflribeiro
mobile: 551192344290
fone: 551135225172
e-mail: [EMAIL PROTECTED]
site: http://www.dbcom.com.br
Chave Pública:
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index



Paulo wrote:

 Entendi Reginaldo, cabe então a tomada de uma decisão no sentido de
  como serão acessadas as tablespaces de uma Base. Achei alguns
 artigos sobre tablespaces que me clarearam a forma na qual o Oracle
 administra seus dados, em visão Lógica e Física.

 Agora eu tive a seguinte situação questionada por um desenvolvedor:
  Criei um usuário que pode apenas fazer select em algumas tabelas
  (medida de segurança). Mas através da ferramenta Oracle SQL
 Developer para quem estiver utilizando este usuário, precisa
 alcançar um caminho mais longo para acessar a tabela (Other Users,
 UserName, Table).

 Existe alguma forma de criar um Alias (diferente do sinonym) que
 este usuário se identifica com a tabela assim como o próprio Owner?


 Não sei se fui claro na explicação, mas para desenvolvedor a forma
 mais simples que a tabela pode ser buscada é a forma mais desejada.
 rs

 Atenciosamente,

 Paulo Andrade MobileCard [EMAIL PROTECTED]
 mailto:paulo%40mobilecard.com.br

 --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br, Reginaldo Ribeiro
 [EMAIL PROTECTED] escreveu

 -BEGIN PGP SIGNED MESSAGE- Hash: SHA1

 Ao meu ver, a principal implicação é a administração. Você cria
 com seu usuário Paulo uma table chamada tabela. Depois, com seu
 user Paulo2 você cria uma table chamada table2. Aí, com o mesmo
 usuário Paulo2, você cria um sinônimo público chamado tabela,
 apontando para Paulo2.table2. Aí você sai de férias em dezembro
 (porque é clt e antigo na empresa) e quando volta em janeiro têm
 um novo projeto gigantesco. A próxima vez que você olhar esses
 objetos, lá por julho do ano que vêm, você vai ter que ficar
 caçando os objetos porque não se lembra mais que tabela é um
 sinônimo público apontando para um objeto cujo nome não tem
 relação aparente com o nome do sinônimo. Alguns sinônimos
 públicos, tudo bem... Mas como você já falou em equipe de
 desenvolvimento... Eu iria devagar com isso e passaria a pensar
 mais em sinônimos privados apenas. De qualquer forma, é sua a
 decisão. Qualquer coisa, estamos por aí.


 Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle
 Certified Associate 10g -
  DBCom Brazil
 Consultoria em Tecnologia da Informação skype: rflribeiro mobile:
 551192344290 fone: 551135225172 e-mail: [EMAIL PROTECTED] site:
 http://www.dbcom.com.br http://www.dbcom.com.br Chave Pública:

 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
 
 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index




 Paulo wrote:

 Fantástico, era exatamente este meu problema:

 Para acessar a tabela de outro usuário eu preciso colocar o
 OWNER antes do nome da 

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-27 Por tôpico Reginaldo Ribeiro
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
inclusive, lhe enviei um exemplo imenso em pvt contendo, inclusive,
instruções para lidar com sinônimos de objetos e links de referência.
Seria interessante informar se sua dúvida está sanada.
Obrigado.


Ribeiro, Reginaldo
Administrador de Bancos de Dados
Oracle Certified Associate 10g
- 
DBCom Brazil Consultoria em Tecnologia da Informação
skype: rflribeiro
mobile: 551192344290
fone: 551135225172
e-mail: [EMAIL PROTECTED]
site: http://www.dbcom.com.br
Chave Pública:
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index



Rafael Almeida Milanez wrote:

 Vamos la para simulação

 [EMAIL PROTECTED]show user
 USER é PAULO

 [EMAIL PROTECTED]create table T_TSE
 2 ( cod number);

 Tabela criada.

 [EMAIL PROTECTED]grant create session to paulo2 ;

 [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;

 Concessão bem-sucedida.


 Agora conecto com Paulo2

 [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user
 USER é PAULO2

 Ai esta a diferença, voce tem que colocar o OWNER.tabela

 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE;
 select * from T_TSE
 *
 ERRO na linha 1:
 ORA-00942: table or view does not exist


 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from paulo.T_TSE;

 não há linhas selecionadas

 

 De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br] Em nome de Paulo
 Enviada em: segunda-feira, 27 de outubro de 2008 10:24
 Para: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 Assunto: Re: RES: [oracle_br] Novo Usuário para Tablespace Existente

 O usuário que executou os comandos foi o OWNER que criou as tabelas.
 Ele pertence à rule DBA:

 SQL select * from owner.T_TSE;
 select * from owner.T_TSE
 *
 ERROR at line 1:
 ORA-00942: table or view does not exist

 SQL select * from T_TSE;

 ORDER_ID NAME
 -- --
 1 Joao
 5 Paulo

 Quando eu faço:

 SQL select OWNER from DBA_SEGMENTS where TABLESPACE_NAME = 'TSE';

 OWNER
 --
 PAULO

 O que eu quero é que o usuário PAULO2 tenha acesso a tabela T_TSE.

 SQL GRANT SELECT ON T_TSE TO PAULO2;

 Grant succeeded.

 SQL COMMIT;

 SQL CONNECT PAULO2/PAULO2;
 Connected.

 Commit complete.

 SQL SELECT * FROM T_TSE;
 SELECT * FROM T_TSE
 *
 ERROR at line 1:
 ORA-00942: table or view does not exist

 SQL

 --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br , Rafael Almeida Milanez
 [EMAIL PROTECTED] escreveu
 
  Voce necessita colocar o OWNER (dono da tabela) antes para visualizar
 
 
  select * from owner.T_TSE
 
  
 
  De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Paulo Andrade
  Enviada em: segunda-feira, 27 de outubro de 2008 09:34
  Para: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
  Assunto: [oracle_br] Novo Usuário para Tablespace Existente
 
 
 
  Pessoal tem uma dúvida que não consigo encontrar resposta:
 
  Possuo uma Base SID = BASE3 com alguns tablespaces.
  Tenho por exemplo um TABLESPACE de nome TSE e criei uma tabela de
 teste e inseri algum dado. Tenho também um usuário que está com a
 permissão de DBA e CONNECT definido na tablespace TSE.
 
  Tudo certo até então. Agora não consigo fazer o seguinte: Criar um
 novo usuário que consiga acessar a tabela que está na TABLESPACE TSE.
 
  Criei o usuário novo com o comando:
 
  CREATE USER NEWUSR IDENTIFIED BY NEWUSR DEFAULT TABLESPACE TSE
 TEMPORARY TABLESPACE TEMP_TSE PROFILE DEFAULT ACCOUNT UNLOCK;
 
  e defini as permissões:
 
  GRANT CONNECT TO NEWUSR
 
  e
 
  GRANT SELECT ON T_TSE TO NEWUSR;
 
  Apesar de ser retornado que efetivou o GRANT, não consigo realizar o
 SELECT na tabela T_TSE com o NEWUSR.
 
  O que devo fazer?
 
  Paulo Andrade

 !-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family: Arial;
 margin: 14px 0px; padding: 0px 14px; } #ygrp-mkp hr{ border: 1px
 solid #d8d8d8; } #ygrp-mkp #hd{ color: #628c2a; font-size: 85%;
 font-weight: bold; line-height: 122%; margin: 10px 0px; } #ygrp-mkp
 #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{ padding: 0 0; }
 #ygrp-mkp .ad a{ color: #ff; text-decoration: none; } -- !--
 #ygrp-sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc
 #hd{ margin: 10px 0px; font-weight: bold; font-size: 78%;
 line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad{ margin-bottom:
 10px; padding: 0 0; } -- !-- #ygrp-mlmsg {font-size:13px;
 font-family:
 

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-27 Por tôpico Paulo
Fantástico, era exatamente este meu problema:

Para acessar a tabela de outro usuário eu preciso colocar o OWNER
antes do nome da tabela como: OWNER.nometabela como assinalado.

Mas posso também criar um Sinonimo como Reginaldo me indicou através
do e-mail, solução fantástica que facilita para os desenvolvedores
quando criarei usuários com permissões diferentes. Muito obrigado
mesmo pela ajuda!

Agora só por uma questão conceitual: Devo adotar então que esta é a
forma única ou a melhor forma para realizar a divisão de acesso de uma
tabela dentre alguns usuários? É possível uma tabela possuir mais de
um OWNER(tenho absoluta certeza que não, mas para checar)? O uso de
sinônimos do tipo public é um recurso utilizado(penso em questões de
segurança)? Enfim preciso de um argumento interessante para convencer
a minha chefe que esta é a solução mais interessante.

Um abração!




--- Em oracle_br@yahoogrupos.com.br, Reginaldo Ribeiro
[EMAIL PROTECTED] escreveu

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
 inclusive, lhe enviei um exemplo imenso em pvt contendo, inclusive,
 instruções para lidar com sinônimos de objetos e links de referência.
 Seria interessante informar se sua dúvida está sanada.
 Obrigado.
 
 
 Ribeiro, Reginaldo
 Administrador de Bancos de Dados
 Oracle Certified Associate 10g
 - 
 DBCom Brazil Consultoria em Tecnologia da Informação
 skype: rflribeiro
 mobile: 551192344290
 fone: 551135225172
 e-mail: [EMAIL PROTECTED]
 site: http://www.dbcom.com.br
 Chave Pública:

http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
 
 
 
 Rafael Almeida Milanez wrote:
 
  Vamos la para simulação
 
  [EMAIL PROTECTED]show user
  USER é PAULO
 
  [EMAIL PROTECTED]create table T_TSE
  2 ( cod number);
 
  Tabela criada.
 
  [EMAIL PROTECTED]grant create session to paulo2 ;
 
  [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;
 
  Concessão bem-sucedida.
 
 
  Agora conecto com Paulo2
 
  [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user
  USER é PAULO2
 
  Ai esta a diferença, voce tem que colocar o OWNER.tabela
 
  [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE;
  select * from T_TSE
  *
  ERRO na linha 1:
  ORA-00942: table or view does not exist
 
 
  [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from 
  paulo.T_TSE;
 
  não há linhas selecionadas
 
  
 
  De: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br] Em nome de Paulo
  Enviada em: segunda-feira, 27 de outubro de 2008 10:24
  Para: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  Assunto: Re: RES: [oracle_br] Novo Usuário para Tablespace Existente
 
  O usuário que executou os comandos foi o OWNER que criou as tabelas.
  Ele pertence à rule DBA:
 
  SQL select * from owner.T_TSE;
  select * from owner.T_TSE
  *
  ERROR at line 1:
  ORA-00942: table or view does not exist
 
  SQL select * from T_TSE;
 
  ORDER_ID NAME
  -- --
  1 Joao
  5 Paulo
 
  Quando eu faço:
 
  SQL select OWNER from DBA_SEGMENTS where TABLESPACE_NAME = 'TSE';
 
  OWNER
  --
  PAULO
 
  O que eu quero é que o usuário PAULO2 tenha acesso a tabela T_TSE.
 
  SQL GRANT SELECT ON T_TSE TO PAULO2;
 
  Grant succeeded.
 
  SQL COMMIT;
 
  SQL CONNECT PAULO2/PAULO2;
  Connected.
 
  Commit complete.
 
  SQL SELECT * FROM T_TSE;
  SELECT * FROM T_TSE
  *
  ERROR at line 1:
  ORA-00942: table or view does not exist
 
  SQL
 
  --- Em oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br , Rafael Almeida Milanez
  rmilanez@ escreveu
  
   Voce necessita colocar o OWNER (dono da tabela) antes para
visualizar
  
  
   select * from owner.T_TSE
  
   
  
   De: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Paulo Andrade
   Enviada em: segunda-feira, 27 de outubro de 2008 09:34
   Para: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br
   Assunto: [oracle_br] Novo Usuário para Tablespace Existente
  
  
  
   Pessoal tem uma dúvida que não consigo encontrar resposta:
  
   Possuo uma Base SID = BASE3 com alguns tablespaces.
   Tenho por exemplo um TABLESPACE de nome TSE e criei uma tabela de
  teste e inseri algum dado. Tenho também um usuário que está com a
  permissão de DBA e CONNECT definido na tablespace TSE.
  
   Tudo certo até então. Agora não consigo fazer o seguinte: Criar um
  novo usuário que consiga acessar a tabela que está na TABLESPACE
TSE.
  

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-27 Por tôpico Paulo
Apenas um detalhe que não comentei na mensagem anterior:

Quando entrei para a empresa em que trabalho, a maior parte das bases
utilizadas pelos programadores foram criadas por um usuário que
utiliza a TABLESPACE USERS. Pelo o que entendi, está TABLESPACE
acompanha a base oracle vazia, não sendo necessária cria-la. É uma boa
opção utilizar esta TABLESPACE? Ou sempre é melhor criar uma nova
TABLESPACE especifica?

Agradeço!




--- Em oracle_br@yahoogrupos.com.br, Paulo [EMAIL PROTECTED] escreveu

 Fantástico, era exatamente este meu problema:
 
 Para acessar a tabela de outro usuário eu preciso colocar o OWNER
 antes do nome da tabela como: OWNER.nometabela como assinalado.
 
 Mas posso também criar um Sinonimo como Reginaldo me indicou através
 do e-mail, solução fantástica que facilita para os desenvolvedores
 quando criarei usuários com permissões diferentes. Muito obrigado
 mesmo pela ajuda!
 
 Agora só por uma questão conceitual: Devo adotar então que esta é a
 forma única ou a melhor forma para realizar a divisão de acesso de uma
 tabela dentre alguns usuários? É possível uma tabela possuir mais de
 um OWNER(tenho absoluta certeza que não, mas para checar)? O uso de
 sinônimos do tipo public é um recurso utilizado(penso em questões de
 segurança)? Enfim preciso de um argumento interessante para convencer
 a minha chefe que esta é a solução mais interessante.
 
 Um abração!
 
 
 
 
 --- Em oracle_br@yahoogrupos.com.br, Reginaldo Ribeiro
 rflribeiro@ escreveu
 
  -BEGIN PGP SIGNED MESSAGE-
  Hash: SHA1
  
  Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
  inclusive, lhe enviei um exemplo imenso em pvt contendo, inclusive,
  instruções para lidar com sinônimos de objetos e links de referência.
  Seria interessante informar se sua dúvida está sanada.
  Obrigado.
  
  
  Ribeiro, Reginaldo
  Administrador de Bancos de Dados
  Oracle Certified Associate 10g
  - 
  DBCom Brazil Consultoria em Tecnologia da Informação
  skype: rflribeiro
  mobile: 551192344290
  fone: 551135225172
  e-mail: rflribeiro@
  site: http://www.dbcom.com.br
  Chave Pública:
 

http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
  
  
  
  Rafael Almeida Milanez wrote:
  
   Vamos la para simulação
  
   [EMAIL PROTECTED]show user
   USER é PAULO
  
   [EMAIL PROTECTED]create table T_TSE
   2 ( cod number);
  
   Tabela criada.
  
   [EMAIL PROTECTED]grant create session to paulo2 ;
  
   [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;
  
   Concessão bem-sucedida.
  
  
   Agora conecto com Paulo2
  
   [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user
   USER é PAULO2
  
   Ai esta a diferença, voce tem que colocar o OWNER.tabela
  
   [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE;
   select * from T_TSE
   *
   ERRO na linha 1:
   ORA-00942: table or view does not exist
  
  
   [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from 
   paulo.T_TSE;
  
   não há linhas selecionadas
  
   
  
   De: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br] Em nome de Paulo
   Enviada em: segunda-feira, 27 de outubro de 2008 10:24
   Para: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   Assunto: Re: RES: [oracle_br] Novo Usuário para Tablespace Existente
  
   O usuário que executou os comandos foi o OWNER que criou as tabelas.
   Ele pertence à rule DBA:
  
   SQL select * from owner.T_TSE;
   select * from owner.T_TSE
   *
   ERROR at line 1:
   ORA-00942: table or view does not exist
  
   SQL select * from T_TSE;
  
   ORDER_ID NAME
   -- --
   1 Joao
   5 Paulo
  
   Quando eu faço:
  
   SQL select OWNER from DBA_SEGMENTS where TABLESPACE_NAME = 'TSE';
  
   OWNER
   --
   PAULO
  
   O que eu quero é que o usuário PAULO2 tenha acesso a tabela T_TSE.
  
   SQL GRANT SELECT ON T_TSE TO PAULO2;
  
   Grant succeeded.
  
   SQL COMMIT;
  
   SQL CONNECT PAULO2/PAULO2;
   Connected.
  
   Commit complete.
  
   SQL SELECT * FROM T_TSE;
   SELECT * FROM T_TSE
   *
   ERROR at line 1:
   ORA-00942: table or view does not exist
  
   SQL
  
   --- Em oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br , Rafael Almeida Milanez
   rmilanez@ escreveu
   
Voce necessita colocar o OWNER (dono da tabela) antes para
 visualizar
   
   
select * from owner.T_TSE
   

   
De: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br ] Em nome de Paulo Andrade
Enviada em: segunda-feira, 27 de outubro de 2008 

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-27 Por tôpico Reginaldo Ribeiro
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Via de regra, sem falarmos de tablespaces exclusivos para lobs,
separação de dados e índices e tudo mais, tente sempre vincular seus
tablespaces à sua aplicação, no mínimo. Quando você tiver que efetuar
alguma operação relacionada apenas com uma aplicação, está tudo num
lugar só.

Ribeiro, Reginaldo
Administrador de Bancos de Dados
Oracle Certified Associate 10g
- 
DBCom Brazil Consultoria em Tecnologia da Informação
skype: rflribeiro
mobile: 551192344290
fone: 551135225172
e-mail: [EMAIL PROTECTED]
site: http://www.dbcom.com.br
Chave Pública:
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index



Paulo wrote:

 Apenas um detalhe que não comentei na mensagem anterior:

 Quando entrei para a empresa em que trabalho, a maior parte das
 bases utilizadas pelos programadores foram criadas por um usuário
 que utiliza a TABLESPACE USERS. Pelo o que entendi, está
 TABLESPACE acompanha a base oracle vazia, não sendo necessária
 cria-la. É uma boa opção utilizar esta TABLESPACE? Ou sempre é
 melhor criar uma nova TABLESPACE especifica?

 Agradeço!

 --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br, Paulo [EMAIL PROTECTED]
 escreveu

 Fantástico, era exatamente este meu problema:

 Para acessar a tabela de outro usuário eu preciso colocar o OWNER
  antes do nome da tabela como: OWNER.nometabela como assinalado.

 Mas posso também criar um Sinonimo como Reginaldo me indicou
 através do e-mail, solução fantástica que facilita para os
 desenvolvedores quando criarei usuários com permissões
 diferentes. Muito obrigado mesmo pela ajuda!

 Agora só por uma questão conceitual: Devo adotar então que esta é
 a forma única ou a melhor forma para realizar a divisão de acesso
 de uma tabela dentre alguns usuários? É possível uma tabela
 possuir mais de um OWNER(tenho absoluta certeza que não, mas para
 checar)? O uso de sinônimos do tipo public é um recurso
 utilizado(penso em questões de segurança)? Enfim preciso de um
 argumento interessante para convencer a minha chefe que esta é a
 solução mais interessante.

 Um abração!




 --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br, Reginaldo Ribeiro
 rflribeiro@ escreveu

 Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
 inclusive, lhe enviei um exemplo imenso em pvt contendo, inclusive,
  instruções para lidar com sinônimos de objetos e links de
 referência.
 Seria interessante informar se sua dúvida está sanada. Obrigado.


 Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle
 Certified Associate 10g
  DBCom Brazil
 Consultoria em Tecnologia da Informação skype: rflribeiro mobile:
 551192344290 fone: 551135225172 e-mail: rflribeiro@ site:
 http://www.dbcom.com.br http://www.dbcom.com.br Chave Pública:



 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index


 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index




 Rafael Almeida Milanez wrote:

 Vamos la para simulação

 [EMAIL PROTECTED]show user USER é PAULO

 [EMAIL PROTECTED]create table T_TSE 2 ( cod number);

 Tabela criada.

 [EMAIL PROTECTED]grant create session to paulo2 ;

 [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;

 Concessão bem-sucedida.


 Agora conecto com Paulo2

 [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user USER é PAULO2

 Ai esta a diferença, voce tem que colocar o OWNER.tabela

 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE; 
 select *
 from T_TSE * ERRO na linha 1: ORA-00942: table or view does not
 exist


 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from 
 paulo.T_TSE;

 não há linhas selecionadas

 

 De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br] Em nome de Paulo Enviada
 em: segunda-feira, 27 de outubro de 2008 10:24 Para:
 oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br Assunto: Re: RES:
 [oracle_br] Novo Usuário para Tablespace Existente

 O usuário que executou os comandos foi o OWNER que criou as
 tabelas. Ele pertence à rule DBA:

 SQL select * from owner.T_TSE; select * from owner.T_TSE * ERROR
 at line 1: ORA-00942: table or view does not exist

 SQL select * from T_TSE;

 ORDER_ID NAME -- -- 1 Joao 5 Paulo

 Quando eu faço:

 SQL select OWNER from DBA_SEGMENTS where TABLESPACE_NAME =
 'TSE';

 OWNER -- PAULO

 O que eu quero é que o usuário PAULO2 tenha acesso a tabela
 T_TSE.

 SQL GRANT SELECT ON T_TSE TO PAULO2;

 Grant succeeded.

 SQL COMMIT;

 SQL CONNECT PAULO2/PAULO2; 

Re: RES: RES: [oracle_br] Novo Usuário para Tablespace Existente

2008-10-27 Por tôpico Reginaldo Ribeiro
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ao meu ver, a principal implicação é a administração. Você cria com
seu usuário Paulo uma table chamada tabela. Depois, com seu user
Paulo2 você cria uma table chamada table2. Aí, com o mesmo usuário
Paulo2, você cria um sinônimo público chamado tabela, apontando para
Paulo2.table2. Aí você sai de férias em dezembro (porque é clt e
antigo na empresa) e quando volta em janeiro têm um novo projeto
gigantesco. A próxima vez que você olhar esses objetos, lá por julho
do ano que vêm, você vai ter que ficar caçando os objetos porque não
se lembra mais que tabela é um sinônimo público apontando para um
objeto cujo nome não tem relação aparente com o nome do sinônimo.
Alguns sinônimos públicos, tudo bem... Mas como você já falou em
equipe de desenvolvimento... Eu iria devagar com isso e passaria a
pensar mais em sinônimos privados apenas.
De qualquer forma, é sua a decisão. Qualquer coisa, estamos por aí.


Ribeiro, Reginaldo
Administrador de Bancos de Dados
Oracle Certified Associate 10g
- 
DBCom Brazil Consultoria em Tecnologia da Informação
skype: rflribeiro
mobile: 551192344290
fone: 551135225172
e-mail: [EMAIL PROTECTED]
site: http://www.dbcom.com.br
Chave Pública:
http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index



Paulo wrote:

 Fantástico, era exatamente este meu problema:

 Para acessar a tabela de outro usuário eu preciso colocar o OWNER
 antes do nome da tabela como: OWNER.nometabela como assinalado.

 Mas posso também criar um Sinonimo como Reginaldo me indicou
 através do e-mail, solução fantástica que facilita para os
 desenvolvedores quando criarei usuários com permissões diferentes.
 Muito obrigado mesmo pela ajuda!

 Agora só por uma questão conceitual: Devo adotar então que esta é a
  forma única ou a melhor forma para realizar a divisão de acesso de
 uma tabela dentre alguns usuários? É possível uma tabela possuir
 mais de um OWNER(tenho absoluta certeza que não, mas para checar)?
 O uso de sinônimos do tipo public é um recurso utilizado(penso em
 questões de segurança)? Enfim preciso de um argumento interessante
 para convencer a minha chefe que esta é a solução mais
 interessante.

 Um abração!

 --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br, Reginaldo Ribeiro
 [EMAIL PROTECTED] escreveu

 -BEGIN PGP SIGNED MESSAGE- Hash: SHA1

 Paulo, alguns amigos já tiveram oportunidade de orientá-lo. Eu,
 inclusive, lhe enviei um exemplo imenso em pvt contendo,
 inclusive, instruções para lidar com sinônimos de objetos e links
 de referência. Seria interessante informar se sua dúvida está
 sanada. Obrigado.


 Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle
 Certified Associate 10g -
  DBCom Brazil
 Consultoria em Tecnologia da Informação skype: rflribeiro mobile:
 551192344290 fone: 551135225172 e-mail: [EMAIL PROTECTED] site:
 http://www.dbcom.com.br http://www.dbcom.com.br Chave Pública:

 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index
 
 http://keyserver.noreply.org/pks/lookup?search=rflribeiro%40dbcom.com.brfingerprint=onop=index




 Rafael Almeida Milanez wrote:

 Vamos la para simulação

 [EMAIL PROTECTED]show user USER é PAULO

 [EMAIL PROTECTED]create table T_TSE 2 ( cod number);

 Tabela criada.

 [EMAIL PROTECTED]grant create session to paulo2 ;

 [EMAIL PROTECTED]grant select on paulo.T_TSE to paulo2;

 Concessão bem-sucedida.


 Agora conecto com Paulo2

 [EMAIL PROTECTED]show mailto:[EMAIL PROTECTED]show user USER é PAULO2

 Ai esta a diferença, voce tem que colocar o OWNER.tabela

 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from T_TSE; 
 select *
 from T_TSE * ERRO na linha 1: ORA-00942: table or view does not
 exist


 [EMAIL PROTECTED]select mailto:[EMAIL PROTECTED]select * from 
 paulo.T_TSE;

 não há linhas selecionadas

 

 De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br] Em nome de Paulo
 Enviada em: segunda-feira, 27 de outubro de 2008 10:24 Para:
 oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br Assunto: Re: RES:
 [oracle_br] Novo Usuário para Tablespace Existente

 O usuário que executou os comandos foi o OWNER que criou as
 tabelas. Ele pertence à rule DBA:

 SQL select * from owner.T_TSE; select * from owner.T_TSE *
 ERROR at line 1: ORA-00942: table or view does not exist

 SQL select * from T_TSE;

 ORDER_ID NAME -- -- 1 Joao 5 Paulo

 Quando eu faço:

 SQL select OWNER from DBA_SEGMENTS where TABLESPACE_NAME =
 'TSE';

 OWNER -- PAULO

 O que eu quero é que o usuário