PostgreSQL कनेक्शन स्ट्रिंग क्या है?

एक PostgreSQL कनेक्शन स्ट्रिंग एक फॉर्मेटेड टेक्स्ट है जो डेटाबेस से कनेक्ट करने के लिए आवश्यक सभी जानकारी को एक एकल मान में बंडल करता है — होस्टनाम, पोर्ट, क्रेडेंशियल्स, डेटाबेस नाम, और SSL सेटिंग्स। एप्लिकेशन, ORMs, और कमांड-लाइन टूल्स कनेक्शन स्ट्रिंग्स का उपयोग करके डेटाबेस सेशन स्थापित करते हैं बिना प्रत्येक पैरामीटर को अलग से कॉन्फ़िगर किए। दो सामान्य फॉर्मेट हैं: URI फॉर्मेट (postgresql://user:password@host:port/dbname) और libpq key=value फॉर्मेट (host=localhost port=5432 dbname=mydb)। दोनों फॉर्मेट लगभग सभी PostgreSQL क्लाइंट लाइब्रेरीज में समर्थित हैं।

टूल विवरण

यह टूल व्यक्तिगत पैरामीटर्स से वैध PostgreSQL कनेक्शन स्ट्रिंग्स जेनरेट करता है। होस्ट, पोर्ट, क्रेडेंशियल्स, डेटाबेस नाम, और SSL मोड भरें, और यह तुरंत तीन उपयोग के लिए तैयार आउटपुट्स प्रदान करता है: एक कनेक्शन URL, एक psql कमांड, और एक libpq key=value स्ट्रिंग।

उदाहरण

इनपुट:

फील्ड मान
होस्ट db.example.com
पोर्ट 5432
यूजरनाम alice
पासवर्ड s3cr3t
डेटाबेस production
SSL मोड require

कनेक्शन URL:

postgresql://alice:s3cr3t@db.example.com/production?sslmode=require

psql कमांड:

psql "postgresql://alice:s3cr3t@db.example.com/production?sslmode=require"

libpq key=value स्ट्रिंग:

host=db.example.com port=5432 dbname=production user=alice password=s3cr3t sslmode=require

विशेषताएं

  • तीन आउटपुट फॉर्मेट्स: एक साथ कनेक्शन URL, psql shell कमांड, और libpq key=value स्ट्रिंग जेनरेट करता है
  • SSL मोड सिलेक्टर: सभी छह PostgreSQL SSL मोड्स को समर्थित करता है — disable, allow, prefer, require, verify-ca, और verify-full
  • स्मार्ट डिफ़ॉल्ट्स: डिफ़ॉल्ट मानों (पोर्ट 5432, sslmode=prefer) को छोड़ देता है ताकि आउटपुट स्वच्छ और न्यूनतम रहे
  • URL एन्कोडिंग: स्वचालित रूप से विशेष वर्णों वाले यूजरनाम, पासवर्ड, और डेटाबेस नामों को प्रतिशत-एन्कोड करता है
  • पोर्ट सत्यापन: सत्यापित करता है कि पोर्ट 1 और 65535 के बीच एक संख्या है

उपयोग के मामले

  • एप्लिकेशन कॉन्फ़िगरेशन: Django, Rails, या कनेक्शन स्ट्रिंग का उपयोग करने वाले किसी भी ऐप जैसे फ्रेमवर्क के लिए DATABASE_URL पर्यावरण चर जेनरेट करें
  • त्वरित CLI एक्सेस: URI सिंटैक्स को याद किए बिना दूरस्थ डेटाबेस से कनेक्ट करने के लिए एक तैयार-से-चलाने वाली psql कमांड तैयार करें
  • कनेक्शन डीबगिंग: कम-स्तरीय ड्राइवर्स या उन टूल्स के साथ कनेक्शन परीक्षण करने के लिए एक libpq स्ट्रिंग बनाएं जो URI फॉर्मेट स्वीकार नहीं करते

SSL मोड्स समझाया गया

मोड विवरण
disable कोई SSL नहीं। कनेक्शन अनएन्क्रिप्टेड है।
allow यदि सर्वर इसकी आवश्यकता है तो SSL का उपयोग करता है; अन्यथा SSL के बिना कनेक्ट करता है।
prefer पहले SSL को आजमाता है; अनएन्क्रिप्टेड पर वापस आता है (डिफ़ॉल्ट)।
require SSL की आवश्यकता है लेकिन सर्वर प्रमाणपत्र को सत्यापित नहीं करता।
verify-ca SSL की आवश्यकता है और सत्यापित करता है कि सर्वर प्रमाणपत्र एक विश्वसनीय CA द्वारा हस्ताक्षरित है।
verify-full SSL की आवश्यकता है, CA को सत्यापित करता है, और यह भी जांचता है कि होस्टनाम प्रमाणपत्र से मेल खाता है।