質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.78%

excel oracle 12.2c にした。ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,364

score 3

前提・実現したいこと

excel ADO でoracleに接続できていたが、oracleが12.2cから19cにアップデートされたようで以下のエラーメッセージが発生しログインできなくなった。
ADOのバージョンでしょうか?

発生している問題・エラーメッセージ

ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

該当のソースコード

    Dim conn As AccessOracleDB
    Dim rs As ADODB.Recordset

    ' インスタンス生成
    Set conn = New AccessOracleDB

    ' データベースに接続
    Call conn.Connect(strOracleDataSource, strOracleUserID, strOracleUserPassword)

'-------------------------------------------------------------------------------------
Private OraConn As New ADODB.Connection

' データベース接続フラグ
Private blnOpen As Boolean

Public Sub Connect(ByVal strDataSource As String, ByVal strUserID As String, ByVal strPassword As String)

    ' データベースに接続するためのコマンド文字列生成
    OraConn.ConnectionString = "Provider=MSDAORA;" & _
                                "Data Source=" & strDataSource & _
                                ";User ID=" & strUserID & _
                                ";Password=" & strPassword & ";"

    ' 接続

    OraConn.Open

    ' フラグをON
    blnOpen = True
End Sub

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

oracle 19c、Oracleクライアントは12.2.0.1.0(32bit)です。
Windows 10 64bit、EXCEL 2016 32bitでADOはMicrosoft ActiveX Data Objects 6.0 Libraryを参照設定しています。

AWS RDS for Oracleなので、
「SQLNET.ALLOWED_LOGON_VERSION_SERVER = 10または11を設定」することになりますが、RDS for Oracle においてこのパラメータグループの設定値は、Modifiable が false となっており、変更ができませんでした。つまり回避策が封じられている状態でした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

、oracleが12.2cから19cにアップデートされたようで

sqlplusが使えるなら、sqlplusでOracle Database に対象のユーザーで接続できますか?使えるはずの他のユーザーではどうですか?
貴社のDBA担当にOracleのバージョンが変わったか確認されては?
Oracle19Cに変わったとして、今のADOで動作保証されているかもDBAに確認もしましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/09/24 14:22

    ADOが含まれるマニュアルは
    https://docs.oracle.com/cd/F19136_01/oledb.pdf
    ADOがサポートされるバージョンについては見つかりませんでした。
    Oracle Clientのバージョンアップが必要かも含めてオラクル・サポートに確認してください。要サポート規約

    キャンセル

  • 2020/09/25 09:52

    Orlofsky様
    情報ありがとうございます。
    マニュアルのEXCEL ADOのサンプルコードの通りに変更したら接続できました。
    ' OraConn.ConnectionString = "Provider=MSDAORA;" &
    ' ⇒Oracle 19c対応!
    OraConn.ConnectionString = "Provider=OraOLEDB.Oracle;" & _

    キャンセル

  • 2020/09/25 13:41

    通常、というか、
    普通のDBAチームならOracle Database のバージョナップをする時、何らかの変更が必要な時バージョンアップ前に連絡して来るはずです。DBAチームに内緒でADOを使っているとか、オラクルのライセンスをサポート契約していない、などの反則技がある場合は別ですが。

    キャンセル

0

Oracle19cに対応していなかったのは、ADOでなくMicrosoft製OLE DB Provider "MSDAORA"のようです。
Orlofsky様にお教えいただいた開発者ガイドfor Microsoft WindowsのEXCEL ADOのサンプルコードの通りProviderを"OraOLEDB.Oracle"に変更したら接続できました。
ありがとうございました。

' OraConn.ConnectionString = "Provider=MSDAORA;" &
' ⇒Oracle 19c対応!
OraConn.ConnectionString = "Provider=OraOLEDB.Oracle;" & _
"Data Source=" & strDataSource & _
";User ID=" & strUserID & _
";Password=" & strPassword & ";"

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

Oracle19cに対応していなかったのはADOでなく、Microsfot製のOLE DB Provider "MSDAORA"のようです。

Orlofsky様にお教えいただいたOracle19c開発者ガイドfor Microsoft WindowsのEXCEL ADOのサンプルコードの通りに、Providerを"OraOLEDB.Oracle”に変更したら接続できました。

' OraConn.ConnectionString = "Provider=MSDAORA;" &
' ⇒Oracle 19c対応!
OraConn.ConnectionString = "Provider=OraOLEDB.Oracle;" & _
"Data Source=" & strDataSource & _
";User ID=" & strUserID & _
";Password=" & strPassword & ";"

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • VBAに関する質問
  • excel oracle 12.2c にした。ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。