dbms_metadata
. से दस्तावेज़ीकरण:
अगर गैर-विशेषाधिकार प्राप्त उपयोगकर्ताओं को किसी और के स्कीमा में किसी ऑब्जेक्ट तक पहुंच का कोई रूप दिया जाता है, तो वे मेटाडेटा एपीआई के माध्यम से अनुदान विनिर्देश प्राप्त करने में सक्षम होंगे, लेकिन ऑब्जेक्ट के वास्तविक मेटाडेटा को नहीं।
इसलिए जब तक आप एक विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में जुड़े नहीं हैं, आप किसी अन्य उपयोगकर्ता की वस्तुओं के लिए डीडीएल नहीं देख सकते हैं। आपको SYS
. के रूप में कनेक्ट करना होगा , या आपके पास SELECT_CATALOG_ROLE
. है XT की ऑब्जेक्ट परिभाषा प्राप्त करने में सक्षम होने के लिए आपके उपयोगकर्ता को दी गई भूमिका।
उस भूमिका के साथ भी:
<ब्लॉककोट>संग्रहीत कार्यविधियों, कार्यों और निश्चित-अधिकार पैकेजों में, भूमिकाएँ (जैसे SELECT_CATALOG_ROLE) अक्षम हैं। इसलिए, ऐसा पीएल/एसक्यूएल प्रोग्राम केवल अपने स्वयं के स्कीमा में वस्तुओं के लिए मेटाडेटा प्राप्त कर सकता है। यदि आप एक पीएल/एसक्यूएल प्रोग्राम लिखना चाहते हैं जो एक अलग स्कीमा में वस्तुओं के लिए मेटाडेटा प्राप्त करता है (चयनकर्ता के SELECT_CATALOG_ROLE के कब्जे के आधार पर), तो आपको प्रोग्राम को इनवोकर्स-अधिकार बनाना होगा।
अगर आप dbms_metadata
को कॉल कर रहे हैं किसी अज्ञात पीएल/एसक्यूएल ब्लॉक से कोई फर्क नहीं पड़ता, लेकिन यदि आप इसे किसी प्रक्रिया से कॉल कर रहे हैं तो आपको AUTHID
शामिल करना होगा प्रक्रिया घोषणा में खंड, AUTHID CURRENT_USER
जोड़कर ।