Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Visibilidad de objetos (principiante)

Estas en el tema de Visibilidad de objetos (principiante) en el foro de Oracle en Foros del Web. Hola a tod@s! Soy nuevo con Oracle y me ha surgido una primera duda acerca de la visibilidad de los objetos (tablas, funciones, etc.) de ...
  #1 (permalink)  
Antiguo 11/12/2012, 06:37
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 9 meses
Puntos: 1
Visibilidad de objetos (principiante)

Hola a tod@s!

Soy nuevo con Oracle y me ha surgido una primera duda acerca de la visibilidad de los objetos (tablas, funciones, etc.) de la base de datos:

He creado dos usuarios, y con uno de ellos he creado una tabla, con ese usuario puedo hacer un "SELECT * FROM miTabla" sin problemas. El problema viene cuando inicio sesión con otro usuario, que parece que tengo que utilizar un "SELECT * FROM usuario1.miTabla" o la cosa no funciona.

¿Hay alguna forma de que cuando cree un objeto con un usuario, el objeto sea visible por el resto de los usuarios con el nombre que se creó originalmente y no usando la "notación" USUARIO.objeto?

Gracias por vuestras ayuda!
  #2 (permalink)  
Antiguo 11/12/2012, 07:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Visibilidad de objetos (principiante)

Puedes crear un sinónimo publico (CREATE SYNONYM). Busca información al respecto.

Adicional, no solo basta con anteponer el nombre del usuario para llamar la tabla, también es necesario conceder permisos mediante el comando grant.

Saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/12/2012, 07:55
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Visibilidad de objetos (principiante)

Perfecto! parece que es lo que necesito!

huesos52, muchas gracias por tu respuesta tan rápida y acertada.

Un saludo!
  #4 (permalink)  
Antiguo 11/12/2012, 18:07
 
Fecha de Ingreso: enero-2009
Mensajes: 32
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Visibilidad de objetos (principiante)

Puedes hacerlo con sinónimos públicos o privados. En el caso de sinónimos públicos que apuntaban anteriormente debes hacerlo del siguiente modo desde el usuario propietario:

Código SQL:
Ver original
  1. CREATE PUBLIC SYNONYM miTabla FOR miTabla;
  2. GRANT ALL ON miTabla TO PUBLIC;
__________________
Anotaciones de un programador

Última edición por gnzsoloyo; 12/12/2012 a las 03:15 Razón: Código SQL mal etiquetado
  #5 (permalink)  
Antiguo 12/12/2012, 02:06
 
Fecha de Ingreso: marzo-2004
Ubicación: Valencia
Mensajes: 367
Antigüedad: 20 años, 9 meses
Puntos: 1
Respuesta: Visibilidad de objetos (principiante)

Eso es exactamente lo que buscaba, gracias a ambos.

Venía trabajando con bases de datos SQL Server y este comportamiento de Oracle me parecía un poco "extraño", pero con el uso de sinónimos públicos solucionado.

Saludos!

Etiquetas: funcion, objetos, select, tabla, visibilidad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:09.