From: | Pablo Braulio <brulics(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: %seguridad a nivel registro |
Date: | 2006-03-03 10:53:15 |
Message-ID: | 200603031153.19037.brulics@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El Jueves, 2 de Marzo de 2006 18:07, Juan Martínez escribió:
> No es facil. Considerando que tienes clientes de todo tipo. Esto me
> suena a varios administradores (o sub administradores) mas clientes que
> poblan (o pueblan?) las tablas, y desde distintas interfaces.
>
> Lo que no es recomendable, es que los usuarios via web sean usuarios
> postgres. No es mala idea, pero la aplicacion web tiene que ser muy
> versatil y debe tener un muy buen control de los errores que se puedan
> generar (dado que asumo que el usuario web es mas neofito con respecto a
> las BD, comparado con el que accedera via psql, entonces los errores hay
> que /traducirlos/). Ahora si el interfaz web es phpPgAdmin, la cosa
> cambia. En ese caso debes crear usuarios reales en postgres.
>
> Tambien no es malo que dos tipos de usuarios postgres se usen para el
> acceso web. Uno con privilegios de solo SELECT, y otro con los
> privilegios de UPDATE, INSERT, [DELETE]. Así te aseguras que no hagan
> nada que te de dolores de cabeza en el futuro. Me refiero a crackeos por
> falta de validacion de los campos de los formularios web.
>
> La idea de varios administradores de frenton no la encuentro muy buena
> (por algo en los paises no hay mas de un presidente simultaneamente, por
> algo sera...).
>
> Si, creo que definitivamente lo tuyo va por GRANT y REVOKE.
No se si en te podrá servir, pero yo lo hago del siguiente modo.
Creo un usuario del sistema para el acceso a postgres mediante psql o pgadmin3
(por ejemplo). Este usuario no es postgres.
Este mismo es el que uso en php para la conexión a la base de datos, y luego
para el uso de la base de datos a través de la web, creo una tabla de
usuarios con los siguientes campos:
\d users
Tabla «public.users»
Columna | Tipo | Modificadores
----------+-----------------------+----------------------------------------------------
id | integer | not null default
nextval('users_id_seq'::regclass)
usuario | name | not null
nombre | text |
password | character varying(32) | not null
admins | boolean | not null default false
bloq | boolean | not null default false
mail | character varying(40) | not null
Índices:
«users_pkey» PRIMARY KEY, btree (id)
«users_mail_key» UNIQUE, btree (mail)
«users_password_key» UNIQUE, btree ("password")
«users_usuario_key» UNIQUE, btree (usuario)
Como puedes ver hay un campo bool llamado "admins" y otro "bloq". Esto es para
clasificar al usuario como administrador o no, y el otro para bloquearlo.
De este modo puedo filtrar los usuarios y denegarles acceso a partes de la
web.
A no ser que se me haya escapado algún concepto o detalle, creo que de este
modo puedo asegurar el acceso a la base de datos.
Si estoy equivocado, agradezco opiniones.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D 4B48 3BC1 CEF7 F222 EB1D
From | Date | Subject | |
---|---|---|---|
Next Message | Ariel | 2006-03-03 11:03:39 | RE: PITR error |
Previous Message | Jaime Casanova | 2006-03-03 05:48:50 | Re: PITR error |