PostgreSQL उपयोगकर्ता को स्कीमा पर सभी विशेषाधिकार प्रदान करता है

Postgresql Upayogakarta Ko Skima Para Sabhi Visesadhikara Pradana Karata Hai



डेटाबेस महत्वपूर्ण हैं, और यह नियंत्रित करना प्रशासक का काम है कि उपयोगकर्ता किसी दिए गए डेटाबेस में कौन सी विभिन्न भूमिकाएँ कर सकते हैं। प्राधिकरण के भाग के रूप में, व्यवस्थापक डेटाबेस के भीतर उपयोगकर्ता संस्थाओं को परिभाषित कर सकता है और भूमिकाओं के लिए विभिन्न विशेषाधिकार प्रदान या रद्द कर सकता है।

इस तरह, आप इस पर नियंत्रण प्राप्त कर सकते हैं कि डेटाबेस तक कौन पहुँच सकता है और यदि वे डेटाबेस तक पहुँच सकते हैं तो उनके पास क्या विशेषाधिकार हैं। उदाहरण के लिए, आप डेटाबेस संशोधन को रद्द कर सकते हैं या किसी उपयोगकर्ता या उपयोगकर्ता को दी गई तालिका में स्कीमा पर सभी विशेषाधिकार प्रदान कर सकते हैं। यह मार्गदर्शिका विवरण देती है कि उपयोगकर्ता को स्कीमा पर उपयोगकर्ता को सभी विशेषाधिकार प्रदान करने के लिए PostgreSQL का उपयोग कैसे करें।







PostgreSQL पर उपयोगकर्ताओं को विशेषाधिकार कैसे प्रदान करें

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



इस ट्यूटोरियल के लिए, चलिए एक नया बनाते हैं भूमिका नामित linuxhint1 .



$ सुडो -आईयू postgres
# भूमिका बनाएँ linuxhint1 लॉगिन पासवर्ड 'linuxhint';


ध्यान दें कि हम के रूप में लॉग इन हैं पोस्टग्रेज, एक बार जब आप PostgreSQL स्थापित कर लेते हैं तो डिफ़ॉल्ट भूमिका बन जाती है।






बनाई गई भूमिका (उपयोगकर्ता) के साथ, हम निम्नलिखित कमांड का उपयोग करके उपलब्ध भूमिकाओं को सूचीबद्ध कर सकते हैं:

# \ से


उपलब्ध भूमिकाएँ एक तालिका प्रारूप में प्रदर्शित की जाएंगी।




postgres डिफ़ॉल्ट भूमिका है और अधिकांश विशेषाधिकार पहले ही प्रदान किए जा चुके हैं। हालाँकि, नई भूमिका, linuxhint1, जब तक हम इसे प्रदान नहीं करते तब तक कोई विशेषाधिकार नहीं है।

1. उपयोगकर्ता को विशिष्ट विशेषाधिकार प्रदान करना

बनाई गई भूमिका स्कीमा को तब तक संशोधित नहीं कर सकती जब तक आप इसकी अनुमति नहीं देते। आइए इसे पहले डिफ़ॉल्ट भूमिका के रूप में तालिका बनाकर सत्यापित करें, postgres.

# तालिका नाम बनाएँ ( m_id int हमेशा उत्पन्न होता है जैसा पहचान, fname vachar ( 100 ) शून्य नहीं, नाम वर्चर ( 100 ) शून्य नहीं, उम्र int ) ;



आप उपलब्ध संबंधों को सूचीबद्ध कर सकते हैं, जैसा कि नीचे दिखाया गया है:


अगला, एक नया शेल खोलें और दूसरी भूमिका का उपयोग करके PostgreSQL में लॉग इन करें, linuxhint1, जिसे हमने निम्नलिखित कमांड का उपयोग करके पहले बनाया था:

$ psql -में linuxhint1 -डी postgres



-डी निर्दिष्ट करता है कि भूमिका Postgres डेटाबेस का उपयोग करना है।

हमारे द्वारा बनाई गई तालिका की सामग्री को पढ़ने का प्रयास करें चुनते हैं आज्ञा।

# चुनते हैं * नामों से;


यह एक देता है अनुमति नहीं मिली उपयोगकर्ता को तालिका तक पहुँचने से रोकने में त्रुटि।


ऐसे मामले में, हमें निम्नलिखित सिंटैक्स का उपयोग करके दी गई तालिका से डेटा को चुनने/देखने के लिए भूमिका विशेषाधिकार प्रदान करने की आवश्यकता है:

# तालिका_नाम को भूमिका_नाम पर विशेषाधिकार_नाम प्रदान करें;


विशेषाधिकार प्रदान करने के लिए, पोस्टग्रेज सत्र का उपयोग करें।


एक बार दी गई, पिछली कमांड को फिर से चलाने का प्रयास करें।


इतना ही। आप विशिष्ट उपयोगकर्ता को चुनिंदा विशेषाधिकार प्रदान करने में कामयाब रहे।

2. एक उपयोगकर्ता को स्कीमा पर सभी विशेषाधिकार प्रदान करना

अब तक, हम एक उपयोगकर्ता को स्कीमा पर केवल एक विशेषाधिकार प्रदान करने में सफल रहे हैं। खैर, यह काफी नहीं है। उपयोगकर्ता स्कीमा को तब तक संशोधित नहीं कर सकता जब तक कि आप इसे सम्मिलित करने और अद्यतन करने जैसे सभी विशेषाधिकार प्रदान नहीं करते।

इसे प्राप्त करने के विभिन्न तरीके हैं। पहले, चलो उपयोगकर्ता को दी गई तालिका के सभी विशेषाधिकार प्रदान करें निम्नलिखित सिंटैक्स का उपयोग करना:

# सभी को टेबल_नाम पर भूमिका_नाम पर अनुदान दें;



उपयोगकर्ता विशेष तालिका के साथ इंटरैक्ट और संशोधित कर सकता है। हालाँकि, वे स्कीमा में अन्य तालिकाओं के साथ काम नहीं कर सकते।

प्रति किसी विशेष स्कीमा में सभी तालिकाओं पर सभी विशेषाधिकार प्रदान करें , निम्न सिंटैक्स का उपयोग करें:

# SCHEMA स्कीमा_नाम में सभी तालिकाओं को role_name पर अनुदान दें;



अंत में, आप कर सकते हैं विशिष्ट विशेषाधिकार प्रदान करें, जैसे किसी भूमिका के लिए स्कीमा पर सभी तालिकाओं को सम्मिलित करना या चयन करना .

# SCHEMA स्कीमा_नाम में सभी तालिकाओं पर विशेषाधिकार_नाम भूमिका_नाम को प्रदान करें;



भूमिका निर्दिष्ट स्कीमा में सभी तालिकाओं में डेटा का चयन कर सकती है। इसी तरह आप परिभाषित करते हैं कि अलग-अलग उपयोगकर्ताओं को स्कीमा पर कौन से विशेषाधिकार प्रदान करने हैं।

निष्कर्ष

PostgreSQL एक शक्तिशाली DBMS है। इसकी विभिन्न विशेषताएं हैं, जिसमें व्यवस्थापक को उपयोगकर्ताओं को विभिन्न विशेषाधिकार प्रदान करने की अनुमति देना शामिल है। उपयोगकर्ताओं को स्कीमा पर सभी विशेषाधिकार प्रदान करने का अर्थ है कि उपयोगकर्ता निर्दिष्ट स्कीमा में सभी तालिकाओं को संशोधित और इंटरैक्ट करने की अनुमति देता है। हमने देखा है कि PostgreSQL में GRANT स्टेटमेंट का उपयोग करके स्कीमा पर विशेषाधिकार देने के अन्य तरीकों को कैसे लागू किया जाए।