Я делаю запросы с сервера MS SQL, используя код Python (библиотека Pymssql), однако мне было интересно, есть ли способ сделать соединение безопасным и зашифровать данные, отправляемые с сервера на python?
Спасибо
Я делаю запросы с сервера MS SQL, используя код Python (библиотека Pymssql), однако мне было интересно, есть ли способ сделать соединение безопасным и зашифровать данные, отправляемые с сервера на python?
Спасибо
Да, может.
Вам нужен FreeTDS, который поддерживает SSL через OpenSSL. Если вам посчастливилось использовать Linux (или Docker в Windows), установить автономную версию FreeTDS в Debian довольно просто:
apt-get update
apt-get install freetds-bin freetds-dev
pip install pymssql
Не используйте pymssql со встроенной библиотекой FreeTDS, очевидно, он не поддерживает SSL. Связанная библиотека используется, когда вы устанавливаете переменную env PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
перед установкой pymssql.
pymssql определенно утверждает, что может работать с зашифрованными подключениями к SQL Server (через OpenSSL). Одна из причин, по которой некоторые считают это невозможным, заключается в том, что версии pymssql для Windows до версии 2.1.2 поставлялись с pymssql, статически связанными с FreeTDS только для незашифрованных соединений.
Начиная с версии 2.1.2, версия pymssql для Windows поставляется динамически связанной с FreeTDS, поэтому она может поддерживать как незашифрованные соединения (только через FreeTDS), так и зашифрованные соединения (через FreeTDS и OpenSSL). Подробности и важное обновление для версий 2.1.3 и более поздних см. в соответствующем ответе здесь .
Если вы хотите подключить SQL-сервер с использованием защищенного соединения с помощью pymssql, вам необходимо предоставить «безопасный» синтаксис на вашем хосте.
например
узел незащищенного соединения: xxx.database.windows.net:1433 узел защищенного соединения: xxx.database.secure.windows.net:1443
К сожалению, это невозможно, но вы можете использовать pyodbc.
encrypt=yes
. Ознакомьтесь с ConnectionStrings в официальной документации: code.google.com/p/pyodbc/wiki/ Строки соединения :-)
- person cdonts; 25.02.2015