वे काफी अलग हैं, हां।
Oracle में, किसी टेबल पर विशेषाधिकार या तो सीधे उपयोगकर्ता को दिए जा सकते हैं (जिस स्थिति में वे ALL_TAB_PRIVS
में दिखाई देंगे। ) या किसी भूमिका को विशेषाधिकार दिए जा सकते हैं (ROLE_TAB_PRIVS
में दृश्यमान) ) और वह भूमिका उपयोगकर्ता को दी जा सकती है (USER_ROLE_PRIVS
में दिखाई दे रही है) ) पहली क्वेरी आपको उन उपयोगकर्ताओं को दिखाएगी जिनके पास एक टेबल पर प्रत्यक्ष अनुदान है। दूसरी क्वेरी आपको उन उपयोगकर्ताओं को दिखाएगी जिन्हें एक भूमिका दी गई है जिसे तालिका तक पहुंच प्रदान की गई है (ध्यान दें कि दोनों ही मामलों में आपको वास्तव में एक OWNER
निर्दिष्ट करना चाहिए। तालिका के नाम के अलावा)। न तो आपको उन अनुदानों के बारे में जानकारी दिखाएगा जो भूमिकाओं के कई नेस्टेड स्तरों के माध्यम से दिए गए हैं (यानी उपयोगकर्ता ए को भूमिका 1 प्रदान की गई है, भूमिका 1 को भूमिका 2 दी गई है, भूमिका 2 को तालिका तक पहुंच प्रदान की गई है)। भूमिकाओं के माध्यम से दिया गया अनुदान भी थोड़ा मुश्किल हो सकता है क्योंकि डिफ़ॉल्ट और गैर-डिफ़ॉल्ट भूमिकाएँ होती हैं और पासवर्ड से सुरक्षित भूमिकाएँ और भूमिकाएँ एक सत्र में सक्षम और अक्षम की जा सकती हैं।
सामान्य तौर पर, मेरा सुझाव है कि आप पीट फ़िनिगन की साइट पर उपलब्ध स्क्रिप्ट पर एक नज़र डालें। यदि आप कुछ ऐसा करना चाहते हैं जो सभी संभावित मामलों को कवर करे। इस मामले में, आप शायद उसकी who_can_access स्क्रिप्ट का उपयोग करना चाहते हैं यह निर्धारित करने के लिए कि उपयोगकर्ता किसी विशेष तालिका तक क्या पहुंच सकते हैं।