複雑なパスワードでパスワード認証が失敗する

JJD

私が使用して、ローカルのPostgreSQLデータベースに接続するPythonスクリプトを書いたpsycopg2 2.6はPython 2.7.8を接続設定とコマンドは次のとおりです。

HOST = '127.0.0.1'
DATABASE_NAME = 'myappdatabase'
DATABASE_PORT = '5432'
DATABASE_USER = 'myappuser'
DATABASE_PASSWORD = 'secret'
DATABASE_TABLE = 'myappdata'

def _database_connection():
    conn_string = "host='{0}' dbname='{1}' port='{2}' user='{3}' \
        password='{4}'".format(HOST, DATABASE_NAME, DATABASE_PORT, \
        DATABASE_USER, DATABASE_PASSWORD)
    return psycopg2.connect(conn_string)

このスクリプトは、PostgreSQL9.4がインストールされているマシン1で問題なく動作します。の構成sudo vi /etc/postgresql/9.4/main/pg_hba.confは変更さておらず、コメントなしで次のようになります。

local   all             postgres                                peer
local   all             all                                     peer
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

pgAdminIIIを使用して同じデータベースに正常に接続することもできます

問題

同じ設定の2台目のマシンでは、スクリプトを介して接続できません。次のエラーが発生します。

psycopg2.OperationalError:FATAL:ユーザー「myappuser」の
パスワード認証に失敗しましたFATAL:ユーザー「myappuser」のパスワード認証に失敗しました

これら2つのマシンの唯一の違いは、データベースのパスワードですだから私はそれを単純なパスワードに変更しました-そしてブーム、それは機能します。だから私はそれを複雑なものに戻しました...そしてそれは再び機能しませパスワードは次のようなものです。

DATABASE_PASSWORD = 'zyx @ 12AA \ w2'

それで私は「これはばかげている。それは私の間違いだろう」と思ったそこで、マシン1のデータベースパスワードを2番目のマシンと同じに設定しました。そして、Pythonスクリプトも失敗します

この場合のパスワードの円記号は、エスケープ文字として解釈されます。Pythonは、有効なエスケープシーケンスではないため、生の文字列として指定されていない場合でも、バックスラッシュ\wをリテラルとして扱いますが、基になるライブラリもエスケープシーケンスを解析するため、バックスラッシュをエスケープ(2倍)する必要があります。\\w

これを回避するには、代わりに接続パラメーターをキーワード引数として指定します

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

これにより、パスワードの特殊文字に関する問題が回避されます。また、パスワードに一重引用符が含まれていると、接続文字列が壊れます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Kerberos認証がパスワードの強制変更で失敗する

分類Dev

Kerberos認証がパスワードの強制変更で失敗する

分類Dev

AWS Redshiftでmd5ハッシュパスワードを使用すると、パスワード認証が失敗するのはなぜですか?

分類Dev

sudoでパスワードが機能しない(「認証の失敗」)

分類Dev

sudoでパスワードが機能しない(「認証の失敗」)

分類Dev

PAM:有効なパスワードで認証に失敗しました

分類Dev

SSH-パスワードプロンプトの後にキーベースの認証が失敗する

分類Dev

RedhatLinuxパスワードがsshで失敗する

分類Dev

部分的なパスワードで機能する認証

分類Dev

djangopostgresのパスワード認証に失敗しました

分類Dev

Java regexを使用したパスワード検証が失敗する

分類Dev

パスワード検証の正規表現が失敗する

分類Dev

パスワードの変更後、MembershipProviderの検証が失敗する

分類Dev

パスワードなしのTamirのSharpSSH:認証に失敗しました

分類Dev

SSHキー認証がパスワード認証よりも優れているのはなぜですか?

分類Dev

グループ化の順序でJavaScriptパスワード検証正規表現が失敗する

分類Dev

fail2banapache-認証フィルターが失敗したパスワードを検出しない

分類Dev

正しいパスワードで認証に失敗し、sudoを使用できなくなりました

分類Dev

正しいパスワードで認証に失敗し、sudoを使用できなくなりました

分類Dev

Rspec認証パスワードテストは理由もなく失敗します

分類Dev

macOSのパスワードSSHが失敗する

分類Dev

ワイルドカードホスト名なしで正規表現パスマッチングを使用すると、Kubernetes入力検証が失敗する

分類Dev

別のパスワードで認証した後、sudoがウィンドウでパスワードを要求するのはなぜですか?

分類Dev

別のパスワードで認証した後、sudoがウィンドウでパスワードを要求するのはなぜですか?

分類Dev

sshパスワードベースのログインが失敗するのはなぜですか?

分類Dev

パスワードと確認パスワードを検証する方法

分類Dev

Ansible SSHパスワード認証は成功しましたが、公開鍵認証は失敗しました

分類Dev

mysqlでパスワードを自動認証する

分類Dev

redux形式で確認パスワードを検証する

Related 関連記事

  1. 1

    Kerberos認証がパスワードの強制変更で失敗する

  2. 2

    Kerberos認証がパスワードの強制変更で失敗する

  3. 3

    AWS Redshiftでmd5ハッシュパスワードを使用すると、パスワード認証が失敗するのはなぜですか?

  4. 4

    sudoでパスワードが機能しない(「認証の失敗」)

  5. 5

    sudoでパスワードが機能しない(「認証の失敗」)

  6. 6

    PAM:有効なパスワードで認証に失敗しました

  7. 7

    SSH-パスワードプロンプトの後にキーベースの認証が失敗する

  8. 8

    RedhatLinuxパスワードがsshで失敗する

  9. 9

    部分的なパスワードで機能する認証

  10. 10

    djangopostgresのパスワード認証に失敗しました

  11. 11

    Java regexを使用したパスワード検証が失敗する

  12. 12

    パスワード検証の正規表現が失敗する

  13. 13

    パスワードの変更後、MembershipProviderの検証が失敗する

  14. 14

    パスワードなしのTamirのSharpSSH:認証に失敗しました

  15. 15

    SSHキー認証がパスワード認証よりも優れているのはなぜですか?

  16. 16

    グループ化の順序でJavaScriptパスワード検証正規表現が失敗する

  17. 17

    fail2banapache-認証フィルターが失敗したパスワードを検出しない

  18. 18

    正しいパスワードで認証に失敗し、sudoを使用できなくなりました

  19. 19

    正しいパスワードで認証に失敗し、sudoを使用できなくなりました

  20. 20

    Rspec認証パスワードテストは理由もなく失敗します

  21. 21

    macOSのパスワードSSHが失敗する

  22. 22

    ワイルドカードホスト名なしで正規表現パスマッチングを使用すると、Kubernetes入力検証が失敗する

  23. 23

    別のパスワードで認証した後、sudoがウィンドウでパスワードを要求するのはなぜですか?

  24. 24

    別のパスワードで認証した後、sudoがウィンドウでパスワードを要求するのはなぜですか?

  25. 25

    sshパスワードベースのログインが失敗するのはなぜですか?

  26. 26

    パスワードと確認パスワードを検証する方法

  27. 27

    Ansible SSHパスワード認証は成功しましたが、公開鍵認証は失敗しました

  28. 28

    mysqlでパスワードを自動認証する

  29. 29

    redux形式で確認パスワードを検証する

ホットタグ

アーカイブ