2011-11-04 7 views
6

Vorrei connettermi a un database MySQL che richiede ca-cert. Posso farlo con MySQLdb come di seguito:Come creare una connessione mysql che richiede CA-CERT con sqlalchemy o SQLObject

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 } 

come faccio a fare lo stesso pensano in SQLAlchemy o SQLObject?

Grazie, Peter

risposta

3

create_engine() in SQLAlchemy ha un parametro connect_args:

connect_args - un dizionario di opzioni che verranno passato direttamente il metodo del DBAPI connect() come argomenti chiave aggiuntivi.

+0

Grazie per la risposta e il link. La documentazione non sembra avere esempi di quali siano queste opzioni? Sono identici alla libreria MySQLdb? – cfpete

+0

Vengono passati direttamente all'API di DB 'connect()', ad esempio 'MySQLdb.connect()' nel tuo caso. –

+0

capito, quindi è identico. Grazie! – cfpete

17

Per utilizzare certificati SSL con SQLAlchemy e MySQLdb, utilizzare il seguente codice 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) 
0

SQLObject (non testata):

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, 
) 
Problemi correlati