プロが教える店舗&オフィスのセキュリティ対策術

ローカルホストから、他のマスタDBにDBリンクを作成しました。
しかし、DBリンクは作成できなのにいざ参照しに行くと下記のエラーが出ます。

select * from Tablename@Linkname

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

どうしてでしょうか、他のサイトにはこれで参照できるといっていたのですが...

また、違う質問になりますがこれで参照しにいけるなら
なんでSnapshotやマテリアライズドビューなどが存在しているのでしょうか?

初歩的な質問ですみませんがどなたか教えてください。

A 回答 (2件)

oracleのデータベースリンクは「create database link」時点ではユーザー、パスワードの妥当性をチェックしません。


ローカルホストからSQL*PLUSでデータベースリンク作成時のSQL文で使ったユーザ名、パスワード、接続文字列でつながるか確認してみてください。
11gから認証の際の大文字小文字を区別するようになっているみたいですから注意してください。

> なんでSnapshotやマテリアライズドビューなどが存在しているのでしょうか?
Snapshotやマテリアライズドビューはローカルホストにデータがありますから、SQL発行のたびにネットワーク経由でのアクセスが発生しません。
当然、パフォーマンスも向上します。
    • good
    • 0
この回答へのお礼

マテリアライズドビューの存在意義がわかり、
助かりました。
ありがとうございます。

お礼日時:2011/01/24 14:46

DBリンクを作成できることと、実際に接続できるかは別問題です。


DBリンクは権限を持っていて、create文の構文が間違っていなければ作成できるはずです。
マスタDBにはcreate文に記述したユーザー名/パスワードは実際に存在するのでしょうか?
また、tnsnames.oraの設定は正しいですか?
まずは、sqlplusなどでマスタDBにちゃんとログインできる情報なのかを確認してみてください。

Snapshotとマテリアライズドビューは同様の機能です。
以前はSnapshotと呼ばれていて、下位互換性のために現在もキーワードとして残っているようです。
別に他DBを参照するためだけならDBリンクでいいかもしれませんが、
バックアップのためであったり、ネットワーク越しでは十分なパフォーマンスが出なかったり・・
その他にもマスタDBとは別に実体として保持しておく必要がある場面が多々あると思います。
そういう時にはマテリアライズドビューを使えばいいのではないでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
参考にさせていただきます。

お礼日時:2011/01/24 14:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す