RE: ACCESO A LOS USUARIOS

From: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
To: "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: ACCESO A LOS USUARIOS
Date: 2007-08-22 17:33:35
Message-ID: 410117BB01F4D611B73A00010331DD2403B57F66@tsnt.tsr.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Excelente, ya tengo la idea comprendida.

Y que tal si cambio de BD, de postgresql a MySql o SLQSERVER, tendria
nuevamente que hacer lo mismo para los usuarios, no se quizas algunos
clientes usen un tipo de BD diferente al que estoy usando y no lo quieren
cambiar.

Por eso era mi duda, quizas por un lado sea mejor manejarlo por tablas, que
opinas ?

Saludos y gracias

Miguel

-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)commandprompt(dot)com]
Enviado el: Miércoles, 22 de Agosto de 2007 12:25 p.m.
Para: MIGUEL CANCHAS
CC: 'pgsql-es-ayuda(at)postgresql(dot)org'
Asunto: Re: [pgsql-es-ayuda] ACCESO A LOS USUARIOS

MIGUEL CANCHAS escribió:
> Por favor ayudenme con esto :
>
> Como controlo los accesos a los usuarios con respecto a las tablas ?

Puedes usar GRANT y REVOKE para dar y restringir permisos a los objetos
en la BD. Si creas roles para cada "nivel" de acceso, y le asignas
privilegios sobre las tablas/vistas a esos roles, entonces puedes
otorgarle roles a tus usuarios, y entonces los usuarios tendran acceso a
las tablas/vistas segun los privilegios de los roles que tengan.

Por ej.

create role contabilidad;
create role gerente_general;

create table empleados( ... );

-- es necesario quitar los permisos de PUBLIC porque los permisos por
-- omision son que todo el mundo puede acceder a las tablas
revoke all on table empleados from public;

-- ahora damos permisos a los roles que creamos arriba
grant all on table emplados to gerente_general;
grant select on table empleados to contabilidad;

-- ahora creamos un usuario
create user juan_perez;

-- si juan_perez es el contador, entonces:
grant role contabilidad to juan_perez;

-- tiempo despues, juan perez asciende a gerente general:
grant role gerente_general to juan_perez;

Et cetera. Asi cada usuario tiene acceso exactamente a lo que necesita,
nada mas ni nada menos.

Es posible que la sintaxis este un poco pifiada porque lo hice de
memoria sin probarlo, pero espero que la idea se entienda. De todas
formas, echale una buena leida a la documentacion de GRANT y REVOKE
(asegurate de leer la documentacion de la version de Postgres que estas
usando, porque ha cambiado un poco recientemente).

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-08-22 17:54:46 Re: ACCESO A LOS USUARIOS
Previous Message Alvaro Herrera 2007-08-22 17:25:57 Re: Cambiar en cascada propietario de tablas