2012-09-27 19 views
10

Biz Oracle DBMS (11g) ve aşağıdaki yapılandırma:Oracle'da farklı bir şemada bulunan bir DBLINK kullanarak nasıl seçilir?

  • A DB kullanıcı "MyUser"
  • İki şemalar "MyUser" ve "SCHEMA_B"
  • Kullanıcı "MyUser" erişebilir "SCHEMA_B "ve onun tabloları izinlerini OKUYUN etti
  • bir kamu DB bağlantı 'SCHEMA_B' bulunan 'DB_LINK doğrudan '
SCHEMA_B' DB kullanıcı kullanırken DB_LINK çalışıyor
  • '

    Soru: "MYUSER" olarak oturum açıldığında, "SCHEMA_B" DB bağlantısını kullanarak tablolara erişmek için doğru sözdizimi nedir? Bunu yapmak mümkün mü?

    select * from [email protected]"DB_LINK" 
    select * from [email protected]"SCHEMA_B"."DB_LINK" 
    select * from [email protected]_B."DB_LINK" 
    select * from [email protected]_B.DB_LINK 
    select * from [email protected]_LINK 
    select * from "SCHEMA_B"[email protected]_LINK 
    

    aldığım hata iletisi şudur:: ORA-02019

    Zaten hiç işe yaramadı birkaç takımyıldızlarını, denedik. 00000 - "uzak veritabanı için bağlantı açıklaması bulunamadı"

    Her türlü öneriniz için teşekkürler!

  • cevap

    11

    Birden çok kullanıcı arasında bir veritabanı bağlantısı paylaşmanın mümkün olduğunu düşünmüyorum ama hepsi değil. Onlar ya özel (sadece bir kullanıcı için) ya da genel (tüm kullanıcılar için).

    Bunun için iyi bir yol, veritabanı bağlantısı üzerinden erişmek istediğiniz tabloyu ortaya çıkaran SCHEMA_B'de bir görünüm oluşturmaktır. Bu, aynı zamanda, görünüşe erişimi kontrol edebildiğiniz için veritabanı bağlantısından kimin seçilebileceği konusunda iyi bir kontrol sağlayacaktır.

    böyle yapın: Tüm kullanıcıların 'genel' yönergesini kullanmak

    create database link db_link... as before; 
    create view mytable_view as select * from [email protected]_link; 
    grant select on mytable_view to myuser; 
    
    +0

    bir veritabanı bağlantısını paylaşmak. KAMU VERİTABANI LINK OLUŞTURUN ... – Rusty1

    İlgili konular