From: | Carlos Alberto Márquez Rey <carlos_marquez_rey(at)yahoo(dot)com> |
---|---|
To: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Administrar Usuarios |
Date: | 2007-08-24 15:43:24 |
Message-ID: | 990192.18327.qm@web56310.mail.re3.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> escribió: El 22/08/07, José Manuel Ruiz escribió:
>
>
> El día 21/08/07, Carlos Alberto Márquez Rey
> escribió:
> > Buenas Tardes
> >
> > Cuales son los comandos para administrar usuarios.
> >
> > Lo que deseo hacer es crear un usuario y darle acceso a que vea solo 3
> vistas de la BD.
> >
> > Pero al hacerlo sale un error que indica que no tiene permiso sobre alguna
> de las tablas que conforman la vista
> >
> > Estoy haciendo lo siguiente
> >
> > CREATE ROLE "role1" NOINHERIT LOGIN PASSWORD 'role1';
>
> Yo suelo hacer CREATE ROLE "role1" NOINHERIT LOGIN PASSWORD 'role1' OWNER
> basededatos;
>
> Al ser propietario de la base de datos ya no tendrás que dar permisos.
Aquí yo encuentro 2 cosas:
1) Lo de OWNER basededatos no forma parte del create role, por lo menos no viene
en la documentación de postgres ni funciona al teclearlo.
2) Lo de dar permisos explícitamente es para evitar acceda a lo que no
debe, así que
tampoco sería lo que necesita.
[...]
> > ERROR: relation "gen_mae_tablas_det" does not exist
> > Estado SQL:42P01
> > Contexto:SQL statement "select des_larga from gen_mae_tablas_det where
> cod_tabla_det = $1 "
> > PL/pgSQL function "f_gen_des_tab_det" line 21 at SQL statement
> >
> > Obviamente este error no sale cuando me logueo con el superusuario
Yo creo que el problema está en la definición de la vista, que intuyo
usa una función
(que es la que falla) definida con la opción SECURITY INVOKER.
Puedes:
- Mandar a esta lista la definición de la vista
- Cambiar la definición de la función "f_gen_des_tab_det"
poniendo SECURITY DEFINER para que se ejecute
con los permisos del usuario que la definió y pueda acceder a la
tabla. OJO que esto
"da mas permisos" que los originales que tú quieres dar al role "role1".
- Cambiar la definición de la vista para que use un join o algo así en
vez de usar una
función.
Ya nos dirás el resultado de lo que pruebes. Un saludo
Miguel
--
Hola a todos
Voy a realizar las pruebas y luego comento los resultados y/o nuevas dudas que tenga.
Muchas gracias por la informacion
Carlos
***********************************************************
Carlos Márquez
***********************************************************
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Juan P. Aviles | 2007-08-24 16:07:10 | Re: Desconexiones sin explicacion : por lo menospara mi.... :( |
Previous Message | Patricio Cifuentes Ithal | 2007-08-24 15:15:37 | RE: Empezar postgreSQL+postgis |