On 2017-12-18 13:07, Alvaro Herrera wrote:
Hola Stephen

Stephen Amell escribió:

On 2017-12-18 12:27, Alvaro Herrera wrote:
Stephen Amell escribió:
Hola, Alvaro

Si, lo primero que hice fue el reassign, y no da error, pero luego tiro el
drop y pincha.
Si, por pincha, quiero decir da error.
ok :-)

¿qué quieres decir "pincha"?  REASSIGN no modifica grantors ni ACLs --
para eso existe DROP OWNED BY.
No alcanzo a entender el "DROP OWNED BY" esto ¿me borraría los objetos
también? ¿o se los asignaría a postgres por decir algo?
DROP OWNED BY elimina (drop) todos los objetos cuyo dueño es el usuario
mencionado.  Si el usuario mencionado aparece en algún ACL, el objeto no
es borrado sino que únicamente el ACL se elimina.
Ok, es buena, pero en mi defensa voy a criticar el reassign, debería reasignarlo para no tener que borrarlo y volver a crearlo.

Encontré que el valor esta en en la tabla pg_catalog.pg_default_acl, estoy
tratando de editarla a ver si puedo cambiarlo directamente.
Modificar catálogos de sistema a mano es seguro de causar problemas
después, si es que llegan a quedar referencias al rol en pg_shdepend.
Tal cual lo dijiste, cambie los registros de pg_shdepend tambien y ahi salio
el drop role sin problemas

update pg_catalog.pg_shdepend set refobjid = 10 where refobjid =
293894::oid;
Quizás qué efectos va a tener esto cuando quieras borrar el esquema
master ... es posible que no pase nada malo.  ¿Se modificaron más
registros, o solamente uno?  ¿Si más de uno, sabes cuáles?

Entonces, solo me queda la duda, ¿hice mal al resolverlo via modificar las
tablas del sistema, pero cual seria la forma de hacerlo correctamente?
IMO sí, hiciste mal -- toda manipulación directa de catálogos es
potencialmente dañina.  La forma correcta es DROP OWNED BY.

Coincido, con lo de no tocar las tablas del sistema, pero insisto con la parte de la critica al reassing, la idea es reasignar todo y no andar borrando y creando. Despues de todo, si el "drop role" hace el control, no seria mucho mas pasarlo al reasign y que actue sobre los acls. no?

En fin, ya paso mi urgencia, y te super agradezco tu ayuda ayer!
Mil gracias again!

Reply via email to