Re: Administrar Usuarios

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/

In response to

Browse pgsql-es-ayuda by date

  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