Oracle डेटाबेस में एक उपयोगकर्ता के पास केवल आपके द्वारा दिए गए विशेषाधिकार होते हैं। इसलिए आप कोई अन्य विशेषाधिकार न देकर केवल-पढ़ने के लिए उपयोगकर्ता बना सकते हैं।
जब आप एक उपयोगकर्ता बनाते हैं
CREATE USER ro_user
IDENTIFIED BY ro_user
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
उपयोगकर्ता को डेटाबेस में लॉग इन करने की अनुमति भी नहीं है। आप यह अनुदान दे सकते हैं
GRANT CREATE SESSION to ro_user
और फिर आप जो चाहें पढ़ने के विशेषाधिकार देने के बारे में जा सकते हैं। उदाहरण के लिए, यदि आप RO_USER
चाहते हैं SCHEMA_NAME.TABLE_NAME
query को क्वेरी करने में सक्षम होने के लिए , आप कुछ ऐसा करेंगे
GRANT SELECT ON schema_name.table_name TO ro_user
आम तौर पर, आप भूमिका बनाने और भूमिका को ऑब्जेक्ट विशेषाधिकार देने से बेहतर हैं ताकि आप विभिन्न उपयोगकर्ताओं को भूमिका प्रदान कर सकें। कुछ इस तरह
भूमिका बनाएं
CREATE ROLE ro_role;
भूमिका को एक विशेष स्कीमा में प्रत्येक तालिका पर चयन पहुंच प्रदान करें
BEGIN
FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name ||
' TO ro_role';
END LOOP;
END;
और फिर उपयोगकर्ता को भूमिका प्रदान करें
GRANT ro_role TO ro_user;