13

ca-certが必要なMySQLデータベースに接続したいのですが。私は以下のようにMySQLdbでそれを行うことができます:

MySQLdb.connect(host = self.host,
                port = self.port,
                unix_socket = self.unix_socket,
                user = self.user,                                
                passwd = self.passwd,
                db = self.db,
                ssl = { 'cert': self.sslcert,
                        'key': self.sslkey,
                         'ca': self.sslca } 

SQLAlchemyまたはSQLObjectで同じ考え方をするにはどうすればよいですか?

ありがとう、ピーター

4

4 に答える 4

41

SQLAlchemyおよびMySQLdbでSSL証明書を使用するには、次のPythonコードを使用します。

db_connect_string='mysql://<user>:<pswd>@<db server>:3306/<database>'
ssl_args = {'ssl': {'cert':'/path/to/client-cert', 
                     'key':'/path/to/client-key', 
                      'ca':'/path/to/ca-cert'}}

create_engine(db_connect_string, connect_args=ssl_args)
于 2013-02-20T23:53:12.803 に答える
6

SQLAlchemyのcreate_engine()には次のconnect_argsパラメーターがあります。

connect_argsconnect()–追加のキーワード引数としてDBAPIのメソッドに直接渡されるオプションの辞書。

于 2011-11-07T09:34:26.023 に答える
1

SQLObject(未テスト):

from sqlobject.mysql import MySQLConnection
connection = MySQLConnection(
    db=self.db,
    user=self.user,
    password=self.password,
    host=self.host,
    ssl_key=self.sslkey,
    ssl_cert=self.sslcert,
    ssl_ca=self.sslca,
)
于 2017-05-07T21:21:49.363 に答える
1

彼らのドキュメントによると、SQLAlchemyのcreate_engine関数は次の形式のdb urlを取ります。dialect[+driver]://user:password@host/dbname[?key=value..]つまり、sslキー、cert、caをキーと値のペアとして渡すことができます。

于 2018-05-13T23:06:19.520 に答える