Ya me di cuenta. El problema es que siempre trabajo localmente y por eso creo
todo con postgres, seguro muchos lo hacemos asi por comodidad. Me toco hacerlo
a nivel de script lo voy a dejar aqui por si alguien tiene el mismo problema.
Claro este solo cambia tablas, vistas, secuencias y funciones si hubiese mas
objetos pues solo es modificar el query para obtener los demas.
DO $$DECLARE rec record; sql varchar;BEGIN for rec IN SELECT
nspname, relname, relkind,nspname || '.' || relname as obj
FROM pg_class c JOIN pg_namespace n
ON (c.relnamespace = n.oid) WHERE nspname NOT LIKE
E'pg\\_%' AND nspname != 'information_schema'
AND relkind IN('S','r','v') ORDER BY relkind
LOOP sql:='ALTER TABLE ' || rec.obj ||
' OWNER TO ' || '"UserMine"'; EXECUTE sql;
raise notice 'Nombre:::%',sql; end loop; -- --. /*
for rec IN SELECT nspname, proname AS
function_name, nspname || '.' || proname || '(' ||
pg_catalog.oidvectortypes(proargtypes) || ')' as obj,
pg_catalog.oidvectortypes(proargtypes) AS parms FROM
pg_catalog.pg_proc AS c JOIN pg_namespace n ON
(c.pronamespace = n.oid) WHERE nspname !=
'information_schema' AND nspname NOT LIKE E'pg\\_%'
ORDER BY proname LOOP
sql:='ALTER FUNCTION ' || rec.obj || ' OWNER TO ' || '"UserMine"';
raise notice '%',sql; EXECUTE sql; end loop; */END;$$
> CC: [email protected]; [email protected]
> Subject: RE: [pgsql-es-ayuda] Cambiar propietario de todos los objetos
> From: [email protected]
> To: [email protected]
> Date: Fri, 28 Sep 2012 11:30:14 -0300
>
> Excerpts from Edwin Quijada's message of vie sep 28 10:43:25 -0300 2012:
> >
> > REASSIGN OWNED BY postgres TO "jqmicroc_LotoUsrTouch" pero consigo este
> > errror
> > ERROR: cannot reassign ownership of objects owned by role postgres because
> > they are required by the database system
>
> El usuario postgres es especial; para cualquier otro usuario, los
> objetos de que es dueño habrían quedado registrados en el catálogo
> pg_shdepend. Pero como "postgres" es el usuario que es dueño de todos
> los objetos esenciales del sistema, es imposible borrarlo, y por lo
> tanto hacer seguimiento detallado de los objetos de que es dueño es
> inútil (y contraproducente, porque así el catálogo pg_shdepend ocuparía
> muchísimo espacio innecesariamente). Por lo tanto no se hace. Por lo
> tanto no se puede hacer REASSIGN OWNED para el usuario postgres.
>
> Para la próxima vez piénsalo bien antes de crear todas las tablas con
> ese usuario. En el peor caso, crea otro superusuario que sea dueño de
> todo (pero, por supuesto, si quieres hacer las cosas bien, deberías
> tener roles bien definidos para cada cosa).
>
> En tu situación actual creo que la respuesta es cambiar la propiedad de
> cada objeto individualmente. Pero no tiene por qué ser a mano, puede
> ser un script.
>
> --
> Álvaro Herrera http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>
> -
> Enviado a la lista de correo pgsql-es-ayuda ([email protected])
> Para cambiar tu suscripci�n:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda