Referência de ganchos para Trusted Language Extensions para PostgreSQL
O Trusted Language Extensions para PostgreSQL é compatível com ganchos do PostgreSQL. Um gancho é um mecanismo interno de retorno de chamada disponível para que os desenvolvedores estendam a funcionalidade principal do PostgreSQL. Usando ganchos, os desenvolvedores podem implementar suas próprias funções ou procedimentos para uso durante várias operações de banco de dados, modificando assim o comportamento do PostgreSQL de alguma forma. Por exemplo, você pode usar um gancho passcheck
para personalizar a forma como o PostgreSQL manipula as senhas fornecidas ao criar ou alterar senhas para usuários (funções).
Veja a documentação a seguir para saber mais sobre o hook passcheck disponível para as extensões TLE.
Gancho de verificação de senha (passcheck)
O gancho passcheck
é usado para personalizar o comportamento do PostgreSQL durante o processo de verificação de senha para os comandos SQL e o metacomando psql
a seguir.
CREATE ROLE
: para obter mais informações, consulte CREATE ROLEusername
...PASSWORDna documentação do PostgreSQL. ALTER ROLE
: para obter mais informações, consulte ALTER ROLEusername
...PASSWORDna documentação do PostgreSQL. \password
: esse metacomando interativousername
psql
altera com segurança a senha do usuário especificado usando o hash da senha antes de usar a sintaxeALTER ROLE ... PASSWORD
de forma transparente. O metacomando é um invólucro seguro para o comandoALTER ROLE ... PASSWORD
, portanto, o gancho se aplica ao comportamento do metacomandopsql
.
Para ver um exemplo, consulte Lista de códigos do gancho de verificação de senha.
Protótipo de função
passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
Argumentos
A função de gancho passcheck
usa os seguintes argumentos:
username
: o nome (como texto) da função (nome de usuário) que está definindo uma senha.password
: o texto simples ou a senha com hash. A senha digitada deve corresponder ao tipo especificado empassword_type
.password_type
: especifique o formatopgtle.password_type
da senha. Esse formato pode ser uma das opções a seguir.PASSWORD_TYPE_PLAINTEXT
: uma senha de texto simples.PASSWORD_TYPE_MD5
: uma senha que foi criptografada usando o algoritmo MD5 (resumo de mensagens 5).PASSWORD_TYPE_SCRAM_SHA_256
: uma senha que foi criptografada usando o algoritmo SCRAM-SHA-256.
valid_until
: especifique a hora em que a senha se torna inválida. Esse argumento é opcional. Se você usar esse argumento, especifique a hora como um valortimestamptz
.valid_null
: se esse valor booliano estiver definido comotrue
, a opçãovalid_until
será definida comoNULL
.
Configuração
A função pgtle.enable_password_check
controla se o gancho passcheck está ativo. O gancho passcheck tem três configurações possíveis.
off
: desativa o gancho de verificação de senhapasscheck
. Este é o valor padrão.on
: ativa o gancho de verificação de senhapasscode
para que as senhas sejam conferidas na tabela.require
: requer que um gancho de verificação de senha seja definido.
Observações de uso
Para ativar ou desativar o gancho passcheck
, você precisa modificar o grupo de parâmetros de banco de dados personalizado para a instância de banco de dados do RDS para PostgreSQL.
Para Linux, macOS ou 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"
Para 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"