Referencia de enlaces para Extensiones de lenguaje de confianza para PostgreSQL - Amazon Relational Database Service

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 username ...PASSWORD: para obtener más información, consulte CREATE ROLE en la documentación de PostgreSQL.

  • ALTER ROLE username...PASSWORD: para obtener más información, consulte ALTER ROLE en la documentación de PostgreSQL.

  • \password username: este metacomando psql interactivo cambia de forma segura la contraseña del usuario especificado mediante un hash de la contraseña antes de utilizar la sintaxis ALTER ROLE ... PASSWORD de forma transparente. El metacomando es un contenedor seguro para el comando ALTER ROLE ... PASSWORD, por lo que el enlace se aplica al comportamiento del metacomando psql.

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 en password_type.

  • password_type: especifique el formato pgtle.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 valor timestamptz.

  • valid_null: si este valor booleano está establecido en true, la opción valid_until se establece en NULL.

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ñas passcheck. Este es el valor predeterminado.

  • on: activa el enlace de comprobación de contraseñas passcode 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-name your-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-name your-custom-parameter-group ^ --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"