PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में उपयोगकर्ता को सुपरयुसर में कैसे बदलें

  • नया उपयोगकर्ता बनाना
  • मौजूदा उपयोगकर्ता अनुमतियां देखना
  • मौजूदा उपयोगकर्ता अनुमतियों को बदलना
    • असाइनिंग SUPERUSER अनुमति
    • अनुमतियां निरस्त करना

PostgreSQL के भीतर उपयोगकर्ता अनुमतियों को संशोधित करना सरल से लेकर अत्यंत जटिल तक हो सकता है, जो वास्तव में आवश्यक अनुमेय ग्रैन्युलैरिटी पर निर्भर करता है। हालांकि, ज्यादातर मामलों में, यह शक्तिशाली ALTER USER . है कमांड जिसका उपयोग उपयोगकर्ताओं को लॉग इन करने, डेटाबेस बनाने, भूमिकाएं प्रबंधित करने और यहां तक ​​कि एक SUPERUSER बनने की अनुमति देने से सब कुछ करने के लिए किया जाना चाहिए। खाता।

हम संक्षेप में ALTER USER . की शक्ति का पता लगाएंगे आदेश दें ताकि आवश्यकता पड़ने पर आप विभिन्न प्रकार के अनुमति असाइनमेंट और निष्कासन आसानी से कर सकें।

नया उपयोगकर्ता बनाना

इससे पहले कि हम बदलाव करें उपयोगकर्ता अनुमतियाँ, हमें एक नया उपयोगकर्ता खाता स्थापित करना चाहिए (जिसे आमतौर पर ROLE . कहा जाता है) ) के साथ खिलवाड़ करना।

शुरू करने के लिए, हम सभी मौजूदा उपयोगकर्ताओं को सूचीबद्ध करेंगे:

=# SELECT usename FROM pg_user;
 usename
----------
 postgres
(1 row)

डिफ़ॉल्ट रूप से, postgres आम तौर पर मौजूद एकमात्र उपयोगकर्ता होता है, इसलिए हम librarian . का एक नया उपयोगकर्ता बनाना चाहते हैं हमारे library . को नियंत्रित करने के लिए डेटाबेस। इसे CREATE USER . का उपयोग करके पूरा किया जा सकता है आदेश:

=# CREATE USER librarian;
CREATE ROLE
=# SELECT usename FROM pg_user;
  usename
-----------
 postgres
 librarian
(2 rows)

मौजूदा उपयोगकर्ता अनुमतियां देखना

सिस्टम में उपयोगकर्ताओं को असाइन की गई मौजूदा अनुमतियों की जांच करना अक्सर उपयोगी हो सकता है। इसे \du . के साथ आसानी से पूरा किया जा सकता है psql . से कमांड संकेत:

=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian |                                                | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

हम स्पष्ट रूप से देख सकते हैं कि भले ही हमने अब एक नया librarian जोड़ा है उपयोगकर्ता, हमें इसे कुछ अनुमतियां देनी होंगी।

मौजूदा उपयोगकर्ता अनुमतियां बदलना

अब जबकि हमारा librarian उपयोगकर्ता मौजूद है, हम ALTER USER . का उपयोग शुरू कर सकते हैं librarian . को दी गई अनुमतियों को संशोधित करने के लिए ।

ALTER USER . का मूल स्वरूप उपयोगकर्ता का नाम शामिल है (या ROLE ) उसके बाद options . की एक शृंखला PostgreSQL को सूचित करने के लिए कि कौन से अनुमेय परिवर्तन करने हैं:

=# ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

ये विकल्प CREATEDB . से लेकर हैं , CREATEROLE , CREATEUSER , और यहां तक ​​कि SUPERUSER . इसके अतिरिक्त, अधिकांश विकल्पों में एक नकारात्मक प्रतिपक्ष भी होता है, जो उस प्रणाली को सूचित करता है जिसे आप अस्वीकार करना . करना चाहते हैं उपयोगकर्ता कि विशेष अनुमति। ये विकल्प नाम उनके असाइनमेंट समकक्ष के समान हैं, लेकिन NO . के साथ पहले लगे हैं (जैसे NOCREATEDB , NOCREATEROLE , NOSUPERUSER )।

असाइन करना SUPERUSER अनुमति

अब जब हम उपयोगकर्ता बनाने और ALTER USER . का उपयोग करने की मूल बातें समझ गए हैं अनुमतियों को संशोधित करने के लिए, हम काफी सरलता से SUPERUSER . का उपयोग कर सकते हैं हमारे librarian assign को असाइन करने का विकल्प उपयोगकर्ता SUPERUSER अनुमति:

=# ALTER USER librarian WITH SUPERUSER;
ALTER ROLE

निश्चित रूप से, यदि हम अभी अपनी अनुमति सूची प्रदर्शित करते हैं, तो हम देखेंगे librarian नया SUPERUSER है अनुमति हम चाहते हैं:

=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian | Superuser                                      | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

अनुमतियां रद्द करना

इस घटना में कि हम कोई गलती करते हैं और एक अनुमति प्रदान करते हैं जिसे हम बाद में रद्द करना चाहते हैं, बस वही ALTER USER जारी करें कमांड लेकिन NO जोड़ें अनुमोदक विकल्पों के सामने उपसर्ग को निरस्त किया जाना है।

उदाहरण के लिए, हम SUPERUSER . को हटा सकते हैं हमारे librarian . से उपयोगकर्ता को ऐसा पसंद है:

=# ALTER USER librarian WITH NOSUPERUSER;
ALTER ROLE
=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 librarian |                                                | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC बैच संचालन समझ

  2. PostgreSQL नामकरण सम्मेलन

  3. एसक्यूएल की स्थिति पूर्णांक की जांच करने के लिए पसंद है?

  4. पोस्टग्रेज डेटाबेस को sqlite में कैसे बदलें

  5. आप psql में स्क्रिप्ट चर का उपयोग कैसे करते हैं?