2011-11-04 19 views
6

Me gustaría conectarme a una base de datos MySQL que requiera ca-cert. Puedo hacerlo con MySQLdb, como a continuación:Cómo hacer una conexión de mysql que requiera 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 } 

¿Cómo puedo hacer lo mismo que en SQLAlchemy o SQLObject?

Gracias, Peter

Respuesta

3

create_engine() in SQLAlchemy tiene un parámetro connect_args:

connect_args - un diccionario de opciones que se pasará directamente a método del DBAPI connect() como argumentos de palabras clave adicionales.

+0

Gracias por la respuesta y el enlace. La documentación no parece tener ejemplos de cuáles son esas opciones? ¿Son idénticos a la biblioteca MySQLdb? – cfpete

+0

Se pasan directamente a 'connect()' de DB API, es decir 'MySQLdb.connect()' en su caso. –

+0

lo obtuve, por lo que es idéntico. ¡Gracias! – cfpete

17

Para utilizar certificados SSL con SQLAlchemy y MySQLdb, utilice el siguiente código 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 (no probado):

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, 
) 
Cuestiones relacionadas