Oracle データベースに接続する Django プログラムがあります。私のsettings.py
ファイルには、次の構成があります。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'xe',
'USER': 'MY_USER_NAME',
'PASSWORD': 'abcdefghijklmnopqrstuvwxyz',
'HOST': 'db_server.example.com',
'PORT': '1234',
}
}
Web サイトを読み込もうとすると、奇妙なエラーが発生しました。
ORA-28547: connection to server failed, probable Oracle Net admin error
さらに調査した結果、Web サーバーとデータベース サーバー間の TCP トラフィックを盗聴しました。ネットワーク通信でこのテキストを発見し、この投稿用に再フォーマットしました。
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=1.2.3.4)
(PORT=1234)
)
(CONNECT_DATA=
(SID=xe)
(CID=
(PROGRAM=httpd@webserver_hostname)
(HOST=webserver_hostname)
(USER=apache)
)
)
)
私の質問は、なぜ Django が指定した資格情報とは異なる資格情報で Oracle データベースに接続しようとしているのかということです。特に、「MY_USER_NAME」の代わりにユーザー「apache」を使用しようとしています。データベース ホストの IP、ポート、および SID は正しく、指定したものです。ユーザー名が違うだけのようです。
(ちなみに、パスワードはログインプロセスの後半で個別に送信されると思いますか?)