PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SQLAlchemy проверява SSL връзката

Не използвам postgres, така че се надявам това да важи и за вас.

SQLAlchemy взема информацията, която предоставяте в URL адреса, и я предава на основната dbapi библиотека, която също е посочена в URL адреса, във вашия случай това е psycopg2.

Вашият engine екземплярът се свързва с базата данни само когато е необходимо, а sqlalchemy просто предава информацията за връзката към драйвера, посочен в url, който връща връзка, използвана от sqlalchemy.

Извинете, че това е mysql, но трябва да е по същество същото за вас:

>>> engine
Engine(mysql+mysqlconnector://test:***@localhost/test)
>>> conn = engine.connect()
>>> conn
<sqlalchemy.engine.base.Connection object at 0x000001614ACBE2B0>
>>> conn.connection
<sqlalchemy.pool._ConnectionFairy object at 0x000001614BF08630>
>>> conn.connection.connection
<mysql.connector.connection_cext.CMySQLConnection object at 0x000001614AB7E1D0>

Извикване на engine.connect() връща sqlalchemy.engine.base.Connection екземпляр, който има connection property за което документационният низ казва:

Въпреки това можете да видите отгоре, че всъщност връща sqlalchemy.pool._ConnectionFairy обект, който от неговия docstring:

Ето __init__() метод на феята на връзката и както виждате има connection атрибут, който е действителната основна dbapi връзка.

def __init__(self, dbapi_connection, connection_record, echo):
    self.connection = dbapi_connection
    self._connection_record = connection_record
    self._echo = echo

Що се отнася до това каква информация е налична за обекта за свързване на dbapi, зависи от внедряването на този конкретен драйвер. Например обектите за връзка psycopg2 имат info атрибут:

Тази info обектът има атрибути като ssl_in_use :

И ssl_attribute :

Така че не е нужно да копаете твърде дълбоко, за да стигнете до действителната db връзка, за да видите какво наистина се случва.

Освен това, ако искате да сте сигурни, че всички клиентски връзки са ssl, винаги можете да force them to .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да премахнете няколко таблици в PostgreSQL с помощта на заместващ знак

  2. Как да получите първи и последен запис от sql заявка?

  3. Премахнете уникалността на индекса в PostgreSQL

  4. Как да запишете файл с изображение в база данни на Postgres?

  5. Как да получа предупредителни съобщения за процедури на Postgresql?