PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

L'authentification par mot de passe échoue avec un mot de passe complexe

Dans ce cas, la barre oblique inverse du mot de passe est interprétée comme un caractère d'échappement. Python traiterait la barre oblique inverse dans \w comme littéral \ même s'il n'est pas spécifié en tant que chaîne brute car \w n'est pas une séquence d'échappement valide, mais la bibliothèque sous-jacente également parse les séquences d'échappement , donc la barre oblique inverse doit être échappée (doublée).

Pour éviter cela, spécifiez les paramètres de connexion comme arguments de mot clé à la place :

psycopg2.connect(host=HOST,
                 database=DATABASE_NAME,
                 port=DATABASE_PORT,
                 user=DATABASE_USER,
                 password=DATABASE_PASSWORD)

Cela évite les problèmes avec les caractères spéciaux dans les mots de passe. De plus, un guillemet simple dans le mot de passe casserait la chaîne de connexion.