जैसा कि दस्तावेज़ीकरण में बताया गया है ए> (जोर दिया गया):
यदि आपके पास भूमिका के माध्यम से दी गई अंतर्निहित तालिका पर केवल चुनिंदा विशेषाधिकार हैं तो आप इसके खिलाफ एक दृश्य नहीं बना सकते हैं। यहां तक कि अगर आप आम तौर पर भूमिका में जाते हैं, तो आपको अपने द्वारा बनाए जाने वाले किसी भी दृश्य के लिए स्पष्ट अनुदान शीर्ष पर रखना होगा।
मैं कल्पना करता हूं कि भूमिकाएं कैसे काम करती हैं, इसके साथ यह करना है। प्रत्यक्ष अनुदान के साथ Oracle जानता है कि क्या आप तालिका को अन्य स्कीमा में देख सकते हैं। यदि आप किसी और को अपने विचार पर चयन करते हैं तो जब वे क्वेरी करते हैं तो ओरेकल जानता है कि विशेषाधिकारों की श्रृंखला है। यदि मेज पर आपका प्रत्यक्ष अनुदान निरस्त कर दिया जाता है तो आश्रित वस्तुओं को अमान्य करने के लिए तंत्र हैं। लेकिन क्या होना चाहिए भूमिका का चयन विशेषाधिकार तालिका पर निरस्त कर दिया गया है; या भूमिका तक आपकी पहुंच निरस्त कर दी गई है; या सिर्फ अपने सत्र के भीतर, यदि आप उस भूमिका को अक्षम कर देते हैं तो क्या होगा - क्या आप अभी भी दृश्य तक पहुंच सकते हैं? यह थोड़ा अधिक जटिल है कि यह पहली नज़र में लगता है।
सौभाग्य से विचार बनाना अपेक्षाकृत दुर्लभ और नियंत्रणीय होना चाहिए। भूमिका के माध्यम से तालिका तक पहुँचने वाले अधिकांश लोगों को उस पर एक दृश्य बनाने की आवश्यकता नहीं होगी (मुझे लगता है!)।
यहां एक अन्य विकल्प ARIEL
. में दृश्य बनाना है स्कीमा, और फिर APEX_ARIEL
. को विशेषाधिकार प्रदान करें और/या भूमिका। यह उचित है या नहीं यह आपकी वास्तविक दृश्य क्वेरी और दृश्य बनाने के लिए आपकी प्रेरणा पर निर्भर करता है।