PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

SQLAlchemy xác minh kết nối SSL

Tôi không sử dụng postgres nên hy vọng điều này đúng với bạn.

SQLAlchemy lấy thông tin mà bạn cung cấp trong url và chuyển nó xuống thư viện dbapi bên dưới cũng được chỉ định trong url, trong trường hợp của bạn là psycopg2.

engine của bạn instance chỉ kết nối với cơ sở dữ liệu khi cần thiết và sqlalchemy chỉ chuyển thông tin kết nối cùng với trình điều khiển được chỉ định trong url trả về kết nối mà sqlalchemy sử dụng.

Xin thứ lỗi rằng đây là mysql, nhưng về cơ bản phải giống với bạn:

>>> 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>

Đang gọi engine.connect() trả về sqlalchemy.engine.base.Connection ví dụ có connection property mà docstring cho biết:

Tuy nhiên, bạn có thể thấy từ phía trên rằng nó thực sự trả về một sqlalchemy.pool._ConnectionFairy đối tượng mà từ đó là docstring:

Đây là __init__() phương thức của tiên kết nối và như bạn có thể thấy nó có connection thuộc tính là kết nối dbapi cơ bản thực tế.

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

Đối với thông tin nào có sẵn trên đối tượng kết nối dbapi, nó phụ thuộc vào việc triển khai trình điều khiển cụ thể đó. Ví dụ:các đối tượng kết nối psycopg2 có info thuộc tính:

info đó đối tượng có các thuộc tính như ssl_in_use :

ssl_attribute :

Vì vậy, bạn không cần phải đào quá sâu để có được kết nối db thực tế để xem điều gì đang thực sự diễn ra.

Ngoài ra, nếu bạn muốn đảm bảo rằng tất cả các kết nối máy khách đều là ssl, bạn luôn có thể 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 chuyển đổi mảng được trả về từ hàm thành cột

  2. Postgresql Tạo chỉ mục duy nhất

  3. Phiên Postgres là gì?

  4. Nhận sự khác biệt của trường khác giữa dấu thời gian đầu tiên và cuối cùng của nhóm

  5. Phát hiện xem một giá trị có chứa ít nhất một chữ số trong PostgreSQL hay không