Fwd: problemas con supersusuario

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.

Responses

Browse pgsql-es-ayuda by date

  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