私はグーグルをしましたが、私は実質的な結果を見いだせませんでした。キーベースの認証を使用して、Pythonを使用してOracleサーバーに接続することは可能ですか?私の目的は、サーバーのどこにでもユーザー名/パスワードを保存する必要なく、私がPythonでやっているいくつかのレポートを自動化できるようにすることです。公開鍵での認証とPythonを使用したcx_Oracle
答えて
1つの解決策は、Oracle Walletを実装することです。 Oracleのウォレットエントリの作成持つ含まれます
- 言っインスタンス
- ユーザ名とパスワードがために確立TNSNAME解像度名
例:私はORCLという名前で働いていたOracle SID、私が接続しなければならないユーザーはmy_userという名前になります。 tnsnames.oraファイルにはすでに、ORCLサービス名/ SIDを解決するエントリがまったく同じパラメータを持つ1以上を作成します。
#initial local name entry:
ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
#create an additional local name entry:
ORCL_MY_USER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = my_ip)(PORT = 1528))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
新しいエントリが正常に解決された後、のためのOracleウォレットのエントリを作成しますORCL_MY_USERローカル名。この新しいローカル名は、Pythonスクリプトでパスワードを入力したりハードコーディングすることなく接続するために使用します。
例:
インポートcx_Oracle
デシベル= cx_Oracle.connect( "/ @のORCL_MY_USER")
カーソル= db.cursor()
R = cursor.execute ( "ユーザー名、パスワード、 account_status、default_tablespace、temporary_tablespace からdba_usersのユーザー名順")
ユーザ名、パスワード、account_status、DEFAULT_TABLESPACEため、カーソル内の temporary_tablespace:
print username, '\t', password, '\t', account_status, '\t', default_tablespace, '\t', temporary_tablespace
ありがとうございます。私は非常に似たようなソリューションを実装することになりました。 WalletユーザーのSIDを「通常の」SIDから分離することをお勧めします。 1つの質問ですが、sqlnet.oraにOracle Walletの場所を指定する必要はありませんか? – Nitzle
しかし、誰もこのコードを使用してデータベースに接続することはできません。公開鍵/秘密鍵モデルを使用する場合のように、一部の人だけがそれを実行できるようにしたい場合はどうでしょうか。 – user2601010
はい、あなたはSQLNET.ORAにOracleウォレットの場所を指定する必要があります。
WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/product/11.2.0.2/dbhome_1/owm/wallets/oracle)))
SQLNET.WALLET_OVERRIDE = TRUE
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_VERSION = 0
私の理解から、Oracleの財布のデフォルトの場所は$ ORACLE_HOME/OWM /財布/の下にあります。
- 1. 公開鍵を使用したPythonでの公開解除
- 2. 公開鍵を使用したPHP SSH2認証
- 3. 公開鍵を使用してJsch認証が失敗する
- 4. 公開鍵/秘密鍵の認証と署名
- 5. sshハンドシェイクと認証に同じ公開鍵を使用できますか?
- 6. 成功Ansible SSH passwdの認証が、公開鍵認証が
- 7. ワイルドカード認証局とその公開鍵を公開するセキュリティ上のリスク
- 8. 公開鍵認証を使用してEmacsでリモートファイルを編集する
- 9. Ruby Net :: SFTPの公開鍵/秘密鍵の認証
- 10. ユーザ名とパスワードを公開せずに認証プロキシを使用したPythonリクエスト。
- 11. のJava - 公開鍵とパスフレーズによる認証 - J2SSH
- 12. AFSマウントされたホーム・ディレクトリからのSSH公開鍵/秘密鍵の認証
- 13. Java公開鍵を使用してxmlデジタル署名を確認
- 14. はBouncyCastleを使用して、公開鍵
- 15. SSH:公開鍵認証を使用しているときにパスワードなしでファイルをコピーします。
- 16. RSA公開鍵への公開鍵c#
- 17. JavaとOpenSSLを使用した公開鍵暗号
- 18. Libgit2 - SSHセッションの認証に失敗しました:公開鍵ファイルを開くことができません
- 19. PSFTP.exeを使用してsftpをプライベートと公開鍵で
- 20. C#ユニバーサルアプリケーションプラットフォームの証明書の公開鍵
- 21. LDAPサーバがダウンしているときにローカルユーザを認証する公開鍵
- 22. 公開鍵/秘密鍵の再利用
- 23. Node.js:一意の公開鍵を使用してクライアントを認証します(Github SSH鍵認証に似ています)
- 24. 公開鍵を使用したiPhoneのRSA解読
- 25. PKCSを使用した公開鍵の暗号化
- 26. 複数のRSA公開鍵を使用した暗号化
- 27. 公開鍵と秘密鍵JWTのガバナンス
- 28. RSA公開鍵と秘密鍵のバックアップ
- 29. opensslのRSA秘密鍵と公開鍵
- 30. opensslを使用して公開鍵でデータ署名を確認する
これは役立つかもしれませんが、Oracle Walletを使用してください。http://www.dbaportal.eu/?q=node/126 –