2011-10-26 11 views
7

तो एपेक्स में "वर्कस्पेस" है, जो आपको तीन प्रकार के उपयोगकर्ताओं को बनाने देता है - जिनमें से सभी प्रकृति में संगठन के लिए आंतरिक हैं। साथ ही, एपेक्स पर किसी व्यक्तिगत साइट के डेवलपर के लिए "साइट" केवल अपनी साइट के लिए कोई तरीका नहीं है।ओरेकल एपेक्स में प्राधिकरण और उपयोगकर्ता भूमिकाएं?

मैं कुछ याद आ रही है?

मुझे बाहरी (व्यवसाय) उपयोगकर्ताओं को साइट की कुछ विशेषताओं तक पहुंच प्राप्त करने में सक्षम होने की आवश्यकता है, उदाहरण के लिए, लेखांकन केवल पृष्ठ ए और बी देख सकता है जबकि अधिकारी ए, बी, और सी

मैं पहुँच के अंतर डिग्री के साथ लोगों के कई समूहों की क्षमता की आवश्यकता है।

यह केवल कार्यस्थानों/समूह बनाने के द्वारा किया जा सकता है? या यह सिर्फ मेरी साइट पर आंतरिक रूप से किया जा सकता है?

उत्तर

7

हालांकि एपेक्स में "समूह" नामक एक अंतर्निहित उपयोगकर्ता प्रबंधन अवधारणा है, मुझे कबूल करना चाहिए कि मैंने कभी इसका उपयोग नहीं किया है, और दस्तावेज़ीकरण की त्वरित जानकारी से मुझे यह स्पष्ट नहीं होता है कि आप इन्हें कैसे नियंत्रित करने के लिए उपयोग करते हैं (लेकिन इसके लिए यहां Tom's answer देखें)।

आप शायद अपने डेटाबेस के भीतर उपयोगकर्ता/भूमिका टेबल बना सकते हैं और पृष्ठों के लिए उपयोग को नियंत्रित करने के शीर्ष प्राधिकरण योजनाएं साथ संयोजन के रूप में इन का उपयोग करने की आवश्यकता होगी।

return my_auth_pkg.is_authorized (p_user => :app_user, 
            p_app_id => :app_id 
            p_page_id => :app_page_id); 

फिर आप पैकेज को लागू उपयोगकर्ता के विशेषाधिकारों को देखने के लिए और तय TRUE या FALSE के लिए वापस जाने के लिए है कि क्या होगा: प्रकार के एक एकल प्राधिकरण योजना "PL/SQL समारोह बूलियन लौटने" समारोह शरीर के साथ बनाया जा सकता है आवेदन और पेज आईडी। enter image description here

वैकल्पिक रूप से आप सिर्फ प्राधिकरण योजना में सीधे पहुँच के लिए जाँच करने के लिए एसक्यूएल प्रदर्शन कर सकता है: enter image description here

(एनबी "user_roles" और "role_pages" नाम मैं बना, अपने तालिकाओं का प्रतिनिधित्व कर रहे हैं)

+0

उपर्युक्त सूचीबद्ध कोड कहां जाएगा? – antonpug

+0

जब आप इसे बनाते हैं तो आप एपेक्स प्राधिकरण योजना की "फ़ंक्शन बॉडी" संपत्ति में प्रवेश करेंगे। –

+0

आह ठीक है। तो यह भी है कि मैं यह देखने के लिए चेक बनाउंगा कि मेरी डीबी तालिका में उचित जानकारी है या नहीं? – antonpug

6

मैं सिर्फ Tony's answer पर विस्तार करने के लिए है, जो अपने आप में सही है चाहता हूँ। मैं सिर्फ आपको एक और तरीका दिखाना चाहता हूं, जो मुझे लगता है कि कुल शुरुआत में आसान होगा और तालिकाओं के निर्माण को छोड़ देगा।

आपके आवेदन प्रमाणीकरण योजना के रूप में एपेक्स का उपयोग करता है, तो अपने उपयोगकर्ताओं कार्यक्षेत्र के ही प्रशासन के माध्यम से प्रबंधित कर रहे हैं। आप उपयोगकर्ताओं को बना, संपादित और हटा सकते हैं, लेकिन आप समूह को परिभाषित भी कर सकते हैं, और उपयोगकर्ताओं को समूहों से जोड़ सकते हैं। आपके लिए कई "अंतिम उपयोगकर्ता" प्रकार के उपयोगकर्ता बनाना संभव है, और "कार्यकारी" जैसे कुछ समूहों को परिभाषित करना संभव है।

Apex users and groups Creation of a group , उपयोगकर्ता आप इस समूह को असाइन करना चाहते हैं पर जाएँ, और है कि उपयोगकर्ता

Adding a group to a user

के समूहों के लिए समूह जोड़ने के एक बार जब आप से आप अपनी समूह बनाया है जब स्थापित करें, आपको अभी भी प्राधिकरण योजनाओं की आवश्यकता है। तथ्य यह है कि आपको यहां कुछ pl/sql ज्ञान की आवश्यकता है, लेकिन कोडिंग को कम से कम रखना संभव है, कुछ आसान एपीआई-काम के लिए धन्यवाद। Defining an authorization based on apex groups current_user_in_group करता है कि वह क्या कहते हैं: यह वर्तमान उपयोगकर्ता के लिए जाँच करता है कि क्या वह समूह सौंपा ने कहा है। कुछ सरल आईएफ-संरचनाओं का उपयोग करके कुछ विस्तार के साथ, आप इसे थोड़ा सा रैंप कर सकते हैं!

यह नहीं कि मैं पूरी तरह से इस विधि की अनुशंसा करता हूं, मुझे यह थोड़ा कठिन लगता है, और आपको किसी को वास्तव में उपयोगकर्ताओं और उनके समूहों को बनाए रखने के लिए एपेक्स में जाने की आवश्यकता है, लेकिन यह अच्छी तरह से हो सकता है कि यह आपके पर्यावरण में स्वीकार्य है । हालांकि आप इसका उपयोग शुरू करने के लिए कर सकते हैं। आप प्रमाणीकरण योजनाओं को आसानी से बदल सकते हैं, और अपनी प्राधिकरण योजनाओं को बदलने के साथ ही वे नई ऑथ योजना का अनुपालन कर सकते हैं, आप बाद में आसानी से और जल्दी समायोजित कर सकते हैं। यह आपकी प्राथमिकताओं और पाठ्यक्रम के लक्ष्यों पर निर्भर करता है।

+1

+1 बढ़िया देखें, अब मुझे पता है कि अंतर्निर्मित समूहों का उपयोग कैसे करें! मैंने जवाब देने से पहले एपेक्स_टिल दस्तावेज़ों को देखा था, लेकिन उस समारोह को देखने में असफल रहा। सिर्फ एक अवलोकन: अभिव्यक्ति 1 में आपका कोड केवल कम किया जा सकता है; 'Apex_util.current_user_in_group वापसी (p_group_name => 'अधिकारियों');' –

+0

मैं यहां अपना उत्तर टॉम लागू किया है, और यह सुनिश्चित करें कि पहुंच को सीमित करने में प्रभावी है। असल में, मैं अब लॉगिन पेज पर नहीं जा सकता। एक्सडी मैं इसे कैसे ठीक कर सकता हूं? मुझे ध्यान रखना चाहिए कि मैंने ऐप स्तर पर प्राधिकरण योजना लागू की है, पृष्ठ स्तर पर नहीं। क्या मुझे ऐप स्तर पर प्रमाणीकरण बंद करना है और वास्तव में प्रत्येक पृष्ठ पर अलग-अलग पहुंच को सीमित करना है और सीमित करना है? – TraxusIV

+1

@TraxusIV वाह, देर से प्रतिक्रिया के लिए खेद है! मुझे लगता है कि यह आपके शीर्ष संस्करण से जुड़ा हुआ हो सकता है, और बाद के शीर्ष संस्करणों को अब यह नहीं करना चाहिए (मुझे विश्वास है)। 4.2 और ऊपर से हो सकता है। इसके अलावा, हाँ, आपको सीधे असाइन करना होगा। हालांकि परेशान मत हो, आप यूटिलिटीज पर जाकर अपेक्षाकृत आसानी से ऐसा कर सकते हैं> दाएं साइडबार पर क्रॉस-पेज यूटिलिटीज का चयन करें> सभी पृष्ठों का ग्रिड संपादन। आप अपने सभी पृष्ठों के लिए, आसानी से प्राधिकरण योजना को बदल सकते हैं। बचाने के लिए मत भूलना! :) – Tom

0

प्राधिकरण का निर्धारण एक प्रमाणीकृत/पहचान व्यक्ति एक संसाधन का उपयोग करने की अनुमति है या एक ऑपरेशन कर रहा है या नहीं की एक प्रक्रिया है। यह उपयोगकर्ता को असाइन किए गए विशेषाधिकारों या भूमिकाओं के सेट पर आधारित है। उदाहरण के लिए, ओरेकल डेटाबेस में, प्रशासक को नौकरी निर्धारित करने का विशेषाधिकार है, जबकि कोई उपयोगकर्ता नहीं कर सकता है। प्राधिकरण प्रमाणीकरण से अलग कैसे है? अक्सर प्रमाणीकरण और प्रमाणीकरण एक साथ काम करते हैं। दूसरे शब्दों में, प्रमाणीकरण प्रमाणीकरण का पालन करता है। प्रमाणीकरण निर्धारित करता है कि आप कौन हैं? प्राधिकरण निर्धारित करता है कि आपको क्या करने की अनुमति है?

संबंधित मुद्दे