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

PostgreSQL तक पहुँचने के लिए Paramiko के साथ SSH टनल सेट करें

SSH पोर्ट फ़ॉरवर्डिंग का उपयोग करें।

Python Paramiko का उपयोग करके नेस्टेड SSH से कोड को संशोधित करना डेटाबेस टनलिंग के लिए, आपको इस तरह का एक कोड मिलता है:

# establish SSH tunnel
self.ssh = paramiko.SSHClient()
# ...
self.ssh.connect(hostname=ssh_host, username=ssh_user, password=ssh_password)

transport = ssh_client.get_transport()
dest_addr = (db_host, db_port)
local_unique_port = 4000 # any unused local port
local_host = 'localhost'
local_addr = (local_host, local_unique_port)
vmchannel = vmtransport.open_channel("direct-tcpip", dest_addr, local_addr)

self.engine = create_engine(
    'postgres+psycopg2://{}:{}@{}:{}/{}'.format(
        db_user, db_password, local_host, local_unique_port, db))

यदि PostgreSQL डेटाबेस SSH सर्वर पर ही चलता है, तो यह आमतौर पर केवल लूपबैक इंटरफ़ेस पर ही सुनेगा। उस स्थिति में db_host localhost पर सेट होना चाहिए ।

हालांकि ध्यान दें कि sshtunnel Paramiko के चारों ओर सिर्फ एक आवरण है। इसलिए सामान्य तौर पर, आप इसका उपयोग कोड को सरल बनाने के लिए कर सकते हैं, जब तक कि आपके पास अतिरिक्त पैकेज स्थापित करने से रोकने वाले कुछ प्रतिबंध न हों।

उदाहरण के लिए:Python में SSH टनलिंग के माध्यम से PostgreSQL डेटाबेस से कनेक्ट करना

MongoDB के बारे में इसी प्रश्न के आधार पर:
Mongo डेटाबेस से कनेक्ट और क्वेरी करें पायथन में निजी कुंजी के साथ SSH

अनिवार्य चेतावनी:AutoAddPolicy . का उपयोग न करें - आप MITM हमलों से सुरक्षा खो रहे हैं ऐसा करने से। एक सही समाधान के लिए, देखें Paramiko "Unknown Server"




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कॉलम निर्दिष्ट किए बिना SQL INSERT। क्या होता है?

  2. पोस्टग्रेज़ उपयोगकर्ता डेटाबेस बनाते हैं

  3. SqlAlchemy:एक सरणी वाले लंबाई json फ़ील्ड को क्वेरी करना

  4. PostgreSQL के लिए pt-pg-सारांश Percona टूलकिट का उपयोग करना

  5. पोस्टग्रेज में क्रिएटबी के साथ समस्याएं