De los documentos sobre Extensiones,
superusuario (booleano) Si este parámetro es verdadero (que es el predeterminado), solo los superusuarios pueden crear la extensión o actualizarla a una nueva versión. Si se establece en falso, solo se requieren los privilegios necesarios para ejecutar los comandos en la secuencia de comandos de instalación o actualización.
El valor no está establecido pgcrypto.control
, por lo que su valor predeterminado es verdadero, lo que requiere un Superusuario.
Esto significa que no puede CREATE EXTENSION
ser el mero propietario de la base de datos, a pesar de lo que los documentos de CREATE EXTENSION lo llevan a creer.
Traté de configurarlo false
, y sin alegría. C es un lenguaje no confiable y obtendrá
ERROR: permiso denegado para lenguaje c
De los documentos en pg_language
Solo los superusuarios pueden crear funciones en idiomas no confiables.
... por supuesto, puedes c
confiar en ti UPDATE pg_language set lanpltrusted = true where lanname = 'c';
como superusuario. Entonces CREATE EXTENSION pgcrypto
funcionará bien como no superusuario. Pero, eso suena como una mala idea si tiene que preocuparse de que sus usuarios carguen la fuente en su directorio de extensiones y luego la instalen en la base de datos. Es decir, no iría tan lejos. Encontraría otra forma de pelar a este gato.
template1
y luego crear cada base de datos de usuario de metemplate1
gustaCREATE DATABASE foo OWNER=userfoo TEMPLATE=template1
?