2012-03-07 12 views
9

मैं वर्तमान में psql -U postgres का उपयोग कर PostgreSQL में लॉग इन करता हूं। मैं postgres उपयोगकर्ता को root पर पुनर्नामित कैसे करूं?मैं डिफ़ॉल्ट पोस्टग्रेस सुपरसियर का नाम "रूट" में कैसे बदलूं?

यदि मैं पहले से ही postgres के रूप में लॉग इन हूं तो ALTER USER postgres RENAME TO rootERROR: session user cannot be renamed कहने का प्रयास करेगा।

क्या उपयोगकर्ता को postgres उपयोगकर्ता के रूप में लॉग इन किए बिना नाम बदलना संभव है? मुझे नहीं लगता कि मेरे पास कोई अन्य सुपरसियर है क्योंकि यह PostgreSQL का एक नया इंस्टॉल है।

वैसे, मैं अमेज़ॅन ईसी 2 पर जेनेटू चला रहा हूं।

+1

मुझे लगता है: पोस्टग्रेज़ के रूप में लॉग इन करें, दूसरा सुपर उपयोगकर्ता बनाएं, नए सुपरसियर के रूप में लॉग इन करें, और अपना ALTER –

+2

चलाएं आप ऐसा क्यों करेंगे? आप पोस्टमास्टर को "रूट" के रूप में नहीं चला सकते हैं क्योंकि यह केवल एक अनधिकृत उपयोगकर्ता के रूप में चलाने पर ही शुरू होगा। –

+0

क्या लिनक्स में 'पोस्टग्रेस' उपयोगकर्ता डेटाबेस में 'पोस्टग्रेस' भूमिका से मेल खाता है? मैं 'रूट' के रूप में लॉग इन करता हूं इसलिए मैं 'psl -U postgres -d something' का विरोध करने के रूप में लॉग इन करने के लिए 'psql -d something' टाइप करना चाहता हूं। – hobbes3

उत्तर

13

आप पोस्टग्रेस उपयोगकर्ता और (खोल पर) टाइपिंग के रूप में लॉग इन करके रूट नामक एक नया पोस्टग्रेस सुपरसियर बनाने में सक्षम होना चाहिए;

createuser --superuser root 
psql> create database root owner root 

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

+0

क्या आप इसे 'psql' के अंदर टाइप करने के लिए कह रहे हैं? ऐसा कुछ नहीं लगता था। – hobbes3

+0

@ hobbes3 नहीं, नियमित खोल से, psql में नहीं। –

+0

@ hobbes3 एक gentoo बॉक्स आसान नहीं है, बस एक उबंटू, यदि आपको कोई समस्या हो रही है तो पथ स्थापित नहीं किए जा सकते हैं। –

2

आप

update pg_authid set rolname ='root' where rolname = 'postgres'; 

कोशिश लेकिन बारे में पता होना, हाथ से प्रणाली कैटलॉग चबा हमेशा एक छोटे से खतरनाक है कि कर सकते हैं।

+0

ऐसा लगता है कि काम करता है। भूमिका और उपयोगकर्ता के बीच क्या अंतर है? जब मैंने 'psql -U postgres' किया था तो क्या मैंने' पोस्टग्रेस 'उपयोगकर्ता या भूमिका के रूप में लॉग इन किया था? – hobbes3

+1

@ hobbes3: AFAIK "उपयोगकर्ता" और "समूह" ऐतिहासिक शब्द हैं जिन्हें तब "भूमिका" में ध्वस्त कर दिया गया था। तो ये शर्तें एक महान डिग्री के लिए अंतर-परिवर्तनीय हैं। तो आप भूमिका/उपयोगकर्ता "पोस्टग्रेस" के साथ लॉग इन थे। –

+1

@ hobbes3: आधुनिक PostgreSQL में, "उपयोगकर्ता" [लॉगिन के साथ भूमिकाएं] हैं [http://www.postgresql.org/docs/current/interactive/sql-createuser.html), "समूह" बिना हैं। आंतरिक रूप से केवल भूमिकाएं हैं। –

4

के बारे में क्या:

ALTER ROLE postgres RENAME TO root; 

एक अलग सुपर उपयोगकर्ता भूमिका का उपयोग कर?

+0

"त्रुटि: सत्र उपयोगकर्ता का नाम बदला नहीं जा सकता"। ध्यान दें, कि ओपी को 'पोस्टग्रेस' के रूप में लॉग इन किया गया था। – Jawa

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^