पोस्टग्रेज्स: एक उपयोगकर्ता को सुपरयुसर होने के लिए अपग्रेड करें?


643

पोस्टग्रैज में, मैं एक मौजूदा उपयोगकर्ता को सुपरयुसर होने के लिए कैसे बदलूं? मैं विभिन्न कारणों से मौजूदा उपयोगकर्ता को हटाना नहीं चाहता।

# alter user myuser ...?

जवाबों:


1261
ALTER USER myuser WITH SUPERUSER;

आप प्रलेखन में अधिक पढ़ सकते हैं


157
विपरीत ऑपरेशन है ALTER USER myuser WITH NOSUPERUSER
d.raev

2
और मैं कैसे पता लगा सकता हूं कि मायुसर वर्तमान में सुपरसियर है?
masterweily

20
SELECT rolname, rolsuper FROM pg_roles;@ मास्टरवाइली को
caulfield

6
मुझे पता है: ERROR: सुपरयुसर को बदलने के लिए सुपरसियर होना चाहिए
Stepan Yakovenko

15
@masterweily आप \duसभी उपयोगकर्ताओं / भूमिकाओं को सूचीबद्ध करने के लिए कर सकते हैं ।
XåpplI'-I0llwlg'I -

63

उपरोक्त का विस्तार करने और एक त्वरित संदर्भ बनाने के लिए:

  • उपयोगकर्ता को सुपरयूज़र बनाने के लिए: ALTER USER username WITH SUPERUSER;
  • उपयोगकर्ता को अब सुपरयूज़र बनाने के लिए: ALTER USER username WITH NOSUPERUSER;
  • उपयोगकर्ता को केवल डेटाबेस बनाने की अनुमति देने के लिए: ALTER USER username CREATEDB;

आप एक सुपरयूज़र बनाए बिना भी उपयोगकर्ता के विशेषाधिकार का उपयोग कर सकते हैं CREATEROLEऔर CREATEUSERअनुमति दे सकते हैं ।

प्रलेखन


27

db पर उपयोगकर्ता को देखने के लिए $ su - postgres
$ psql
$ \du;उस उपयोगकर्ता का
चयन करें जो आप चाहते हैं कि सुपरयुसर और:
$ ALTER USER "user" with superuser;


इस विशिष्ट मामले में, आपको उपयोगकर्ता नाम को कोमा के अंदर रखना होगा, उदाहरणALTER USER "user" WITH SUPERUSER;
कार्लोस।

9

इस कमांड को रन करें

alter user myuser with superuser;

यदि आप कमांड चलाने के बाद किसी उपयोगकर्ता को अनुमति देखना चाहते हैं

\du

8

हो सकता है कभी-कभी किसी सुपरयुसर को अपग्रेड करना एक अच्छा विकल्प न हो। तो सुपर उपयोगकर्ता के अलावा अन्य बहुत सारे विकल्प हैं जो आप उपयोग कर सकते हैं। अपना टर्मिनल खोलें और निम्नलिखित टाइप करें:

$ sudo su - postgres
[sudo] password for user: (type your password here)
$ psql
postgres@user:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.

postgres=# ALTER USER my_user WITH option

विकल्पों की सूची भी सूचीबद्ध करें

SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB  | CREATEROLE | NOCREATEROLE |
CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION|
NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | 
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp'

तो कमांड लाइन में यह दिखेगा

postgres=# ALTER USER my_user WITH  LOGIN

या एक एन्क्रिप्टेड पासवर्ड का उपयोग करें।

postgres=# ALTER USER my_user  WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';

या एक विशिष्ट समय के बाद अनुमति रद्द करें।

postgres=# ALTER USER my_user  WITH VALID UNTIL '2019-12-29 19:09:00';

4

आप अपने मामले के लिए SUPERUSERया एक प्रचार कर सकते हैंUSER

$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"

या रोलबैक

$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"

जब आप पासवर्ड सेट करते हैं तो लॉगिंग से एक कमांड को रोकने के लिए, उसके सामने एक व्हाट्सएप डालें, लेकिन जांचें कि आपका सिस्टम इस विकल्प का समर्थन करता है।

$  sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
$  sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.