From: | Rensi Arteaga Copari <rarteaga(at)ende(dot)bo> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Fwd: problemas con supersusuario |
Date: | 2010-03-15 12:22:54 |
Message-ID: | 4B9E269E.8080605@ende.bo |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Les mando de nuevo mi problema,......................
dado que todavía no encuentro la causa,
creen que pueda ser un error de la versión 8.1 de postgres ???
No es extraño que a un superusuario le salga permiso denegado?????
Hola amigos,
Tengo una base de datos que ha sido desarrollado por varios
programadores , todos registrados como supersusurios
y ahora que tengo la base datos en explotación, por seguridad estos
desarrolladores ya no deben ser supersusurios,
y les quites este privilegios
ALTER ROLE "vsoliz" NOSUPERUSER;
... etc
Pero después de quitar algunos supersusuarios,
cuando otros usuarios y yo (que soy superusuario todavia) accedemos a
la base de datos
me sale un error
#42501 - permiso denegado para la relación vad_partida_detalle
Pense que esto podría ser debido a que los usuarios desarrolladores
son dueños de varias funciones, vistas y tablas
y cree una función para asignar como dueño de todo los objetos al
usuario "postgres" (esto en en base a una que encontré por la lista)
pero el problemas persiste y ya no se por donde más buscar el problemas
(a demas que me parece muy raro que a un superusuario le salga permiso
denegado)
PARA ASIGNAR COMO DUEÑO AL p_user DE TODAS LAS VISTA Y TABLAS EN
EL p_esquema
--------------------------------------------------------------
DECLARE
objeto record;
x varchar;
BEGIN
FOR objeto IN
( SELECT viewname as d FROM pg_views WHERE
schemaname=p_esquema
UNION
SELECT tablename as d FROM pg_tables WHERE
schemaname=p_esquema
UNION
SELECT relname as d FROM pg_statio_all_sequences
WHERE schemaname=p_esquema)
LOOP
-- RAISE NOTICE 'Asignando % como dueño % en
el esquema %', p_user,' objeto.d, p_esquema;
x='ALTER TABLE "'||p_esquema||'"."'|| objeto.d ||'"
OWNER TO '||p_user;
RAISE NOTICE '%',x;
EXECUTE (x);
END LOOP;
END;
------------------------------------------------
PARA ASIGNAR COMO DUEÑO AL p_user DE TODASFUNCIONES en el p_esquema
-----------------------------------
DECLARE
objeto record;
tipos_objeto record;
x varchar;
tipos varchar;
tam integer;
contador integer;
cuenta_funciones integer;
tipo_dato varchar;
BEGIN
-- Consulta los datos de la función
cuenta_funciones:=0;
FOR objeto IN
(
SELECT p.proname AS name,
p.oid,
p.proargtypes AS args,
p.prorettype AS rettype,
n.nspname,
proargnames,
p.proargmodes,
p.proallargtypes,
p.pronargs
FROM pg_proc p
INNER JOIN pg_namespace n ON p.pronamespace = n.oid
WHERE n.nspname = p_esquema
)
LOOP
-- Arma los atributos de la función
tipos:='(';
contador=1;
tam=objeto.pronargs;
WHILE contador < tam or contador = tam LOOP
SELECT
typname
into
tipo_dato
FROM pg_type t
WHERE t.oid=objeto.args[contador
-1];
IF (contador <>tam)THEN
tipos =
tipos||objeto.proargnames[contador]||' '||tipo_dato ||', ';
ELSE
tipos =
tipos||objeto.proargnames[contador]||' '||tipo_dato;
END IF;
contador = contador +1;
END LOOP;
tipos = tipos||')';
x=' ALTER FUNCTION
"'||p_esquema||'"."'||objeto.name||'"'||tipos||'
OWNER TO '||p_user;
RAISE NOTICE 'OBJETO % CONTADOR % ,
%',objeto.name,contador,x;
-- Executa la funcion de asignacion de privilegios
EXECUTE (x);
cuenta_funciones:=cuenta_funciones+1;
END LOOP;
RAISE NOTICE '% FUNCIONES ASIGNADAS',cuenta_funciones;
END;
---------------------------------------------------------------
---------------------------------------------------------------------------------
Este mensaje ha sido analizado automáticamente por el *MailScanner* de
*ENDE*
y no han sido detectados virus ni otros contenidos peligrosos.
--
EMPRESA NACIONAL DE ELECTRICIDAD
www.ende.bo
Tel.: (591-4) 4520253 - 4520228
Fax: (591-4) 4520318
---------------------------------------------------------------------------------
Este mensaje ha sido analizado automaticamente por el MailScanner de ENDE
y no han sido detectados virus ni otros contenidos peligrosos.
From | Date | Subject | |
---|---|---|---|
Next Message | Edilberto Arteaga Lopez | 2010-03-15 13:52:23 | RE: problemas con supersusuario |
Previous Message | Martin Li Causi | 2010-03-15 11:05:44 | Pg 8.4.2 + Pgpool-II |