Referencia de enlaces para Extensiones de lenguaje de confianza para PostgreSQL
Extensiones de lenguaje de confianza para PostgreSQL admite los enlaces de PostgreSQL. Un enlace es un mecanismo interno de devolución de llamada disponible para los desarrolladores para ampliar la funcionalidad principal de PostgreSQL. Mediante el uso de enlaces, los desarrolladores pueden implementar sus propias funciones o procedimientos para utilizarlos durante diversas operaciones de bases de datos, modificando así el comportamiento de PostgreSQL de alguna manera. Por ejemplo, puede utilizar un enlace passcheck
para personalizar la forma en que PostgreSQL gestiona las contraseñas proporcionadas al crear o cambiar las contraseñas de los usuarios (roles).
Consulte la siguiente documentación para obtener información sobre el enlace de passcheck disponible para sus extensiones TLE.
Enlace de comprobación de contraseñas (passcheck)
El enlace passcheck
se utiliza para personalizar el comportamiento de PostgreSQL durante el proceso de comprobación de contraseñas para los siguientes comandos SQL y el metacomando psql
.
CREATE ROLE
: para obtener más información, consulte CREATE ROLEusername
...PASSWORDen la documentación de PostgreSQL. ALTER ROLE
: para obtener más información, consulte ALTER ROLEusername
...PASSWORDen la documentación de PostgreSQL. \password
: este metacomandousername
psql
interactivo cambia de forma segura la contraseña del usuario especificado mediante un hash de la contraseña antes de utilizar la sintaxisALTER ROLE ... PASSWORD
de forma transparente. El metacomando es un contenedor seguro para el comandoALTER ROLE ... PASSWORD
, por lo que el enlace se aplica al comportamiento del metacomandopsql
.
Para ver un ejemplo, consulte Lista de códigos del enlace password_check.
Prototipo de función
passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
Argumentos
La función de enlace passcheck
acepta los argumentos siguientes:
username
: el nombre (como texto) del rol (nombre de usuario) que establece una contraseña.password
: la contraseña en texto sin formato o con hash. La contraseña introducida debe coincidir con el tipo especificado enpassword_type
.password_type
: especifique el formatopgtle.password_type
de la contraseña. Este formato puede ser uno de los siguientes:PASSWORD_TYPE_PLAINTEXT
: una contraseña sin formato.PASSWORD_TYPE_MD5
: una contraseña que se ha cifrado con hash mediante el algoritmo MD5 (resumen de mensaje 5).PASSWORD_TYPE_SCRAM_SHA_256
: una contraseña que se ha cifrado con hash mediante el algoritmo SCRAM-SHA-256.
valid_until
: especifica el momento en que la contraseña deja de ser válida. Este argumento es opcional. Si utiliza este argumento, especifique la hora como valortimestamptz
.valid_null
: si este valor booleano está establecido entrue
, la opciónvalid_until
se establece enNULL
.
Configuración
La función pgtle.enable_password_check
controla si el enlace de passcheck está activo. El enlace de passcheck tiene tres ajustes posibles.
off
: desactiva el enlace de comprobación de contraseñaspasscheck
. Este es el valor predeterminado.on
: activa el enlace de comprobación de contraseñaspasscode
para cotejarlas con la tabla.require
: requiere que se defina un enlace de comprobación de contraseñas.
Notas de uso
Para activar o desactivar el enlace passcheck
, debe modificar el grupo de parámetros de base de datos personalizado de su instancia de base de datos de RDS para PostgreSQL.
Para Linux, macOS o:Unix
aws rds modify-db-parameter-group \ --region
aws-region
\ --db-parameter-group-nameyour-custom-parameter-group
\ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
En:Windows
aws rds modify-db-parameter-group ^ --region
aws-region
^ --db-parameter-group-nameyour-custom-parameter-group
^ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"