Может ли Pymssql иметь безопасное соединение (SSL) с MS SQL Server?

Я делаю запросы с сервера MS SQL, используя код Python (библиотека Pymssql), однако мне было интересно, есть ли способ сделать соединение безопасным и зашифровать данные, отправляемые с сервера на python?

Спасибо


person Mo.    schedule 25.02.2015    source источник


Ответы (4)


Да, может.

Вам нужен 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.

person Stan Prokop    schedule 17.07.2017

pymssql определенно утверждает, что может работать с зашифрованными подключениями к SQL Server (через OpenSSL). Одна из причин, по которой некоторые считают это невозможным, заключается в том, что версии pymssql для Windows до версии 2.1.2 поставлялись с pymssql, статически связанными с FreeTDS только для незашифрованных соединений.

Начиная с версии 2.1.2, версия pymssql для Windows поставляется динамически связанной с FreeTDS, поэтому она может поддерживать как незашифрованные соединения (только через FreeTDS), так и зашифрованные соединения (через FreeTDS и OpenSSL). Подробности и важное обновление для версий 2.1.3 и более поздних см. в соответствующем ответе здесь .

person Gord Thompson    schedule 06.07.2016

Если вы хотите подключить SQL-сервер с использованием защищенного соединения с помощью pymssql, вам необходимо предоставить «безопасный» синтаксис на вашем хосте.

например

узел незащищенного соединения: xxx.database.windows.net:1433 узел защищенного соединения: xxx.database.secure.windows.net:1443

person Mohit Gohel    schedule 04.07.2016

К сожалению, это невозможно, но вы можете использовать pyodbc.

person cdonts    schedule 25.02.2015
comment
Есть ли хорошие учебники или вики о том, как я могу использовать pyodbc? - person Mo.; 25.02.2015
comment
@Мо. pyodbc основан на DB-API Python, поэтому, если вы знаете, как использовать pymssql, то вы это знаете. Основное отличие состоит в том, что вам нужно построить строку подключения для вашего механизма базы данных, это ключ, вы сможете включить что-то вроде encrypt=yes. Ознакомьтесь с ConnectionStrings в официальной документации: code.google.com/p/pyodbc/wiki/ Строки соединения :-) - person cdonts; 25.02.2015