Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle:किसी अन्य उपयोगकर्ता के लिए स्कीमा के लिए केवल-पढ़ने के लिए पहुँच?

यदि आपके एप्लिकेशन के कनेक्ट होने के तरीके पर आपका नियंत्रण है (उदाहरण के लिए आपके कनेक्शन पूल के लिए एक आरंभीकरण विवरण), तो आपको बस इतना करना है:

ALTER SESSION SET CURRENT_SCHEMA = PRODUCTS;

उस बिंदु से आगे (सत्र के जीवनकाल के दौरान) किसी भी अयोग्य वस्तु का नाम PRODUCTS में खोजा जाएगा स्कीमा।

PRODUCTS_READONLYको दिए गए सभी अनुदान प्रभाव में होगा। सत्र लॉग इन करने के लिए उपयोग किए गए मूल उपयोगकर्ता के क्रेडेंशियल्स (और सुरक्षा प्रतिबंध) के तहत चलेगा।

यदि आप कनेक्शन स्थापित करने या आरंभ करने के तरीके को नहीं बदल सकते हैं तो लॉगऑन ट्रिगर को भी इसे पूरा करना चाहिए:

create or replace trigger logon_trg
  after logon on database
begin
    if (user = 'PRODUCTS_READONLY') then
      execute immediate 'alter session set current_schema = products';
    end if;
exception
  when others then null; -- prevent a login failure due to an exception
end logon_trg;
/

ध्यान दें कि किसी को फंसाना महत्वपूर्ण है अपवाद, क्योंकि अन्यथा निष्पादित SQL में एक संभावित त्रुटि प्रभावी रूप से सभी को डेटाबेस से लॉग आउट कर देगी। इसलिए इसे उत्पादन में लगाने से पहले सावधानी से उपयोग करें और इसका अच्छी तरह से परीक्षण करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नई डीबी प्रणाली सीखने के लाभ

  2. SIN () Oracle में फंक्शन

  3. तीन कॉलम से मूल्य स्टोर करने में मदद चाहिए

  4. पीएलएसक्यूएल:मर्ज स्टेटमेंट का उपयोग करते समय अपडेट किए गए रिकॉर्ड्स की संख्या प्राप्त करें बनाम सम्मिलित करें

  5. Oracle पहले स्थान या पंक्ति के अंत तक मूल्य का चयन करता है