Как передать параметр подключения ApplicationIntent=ReadOnly при использовании pymssql

У меня есть доступ только для чтения к базе данных SQL Server. Как передать параметр подключения «ApplicationIntent = ReadOnly» при использовании pymssql для подключения к базе данных? Если pymssql не поддерживает его, есть ли другая библиотека Python, которую я могу использовать?


person Zebra Propulsion Lab    schedule 29.06.2016    source источник


Ответы (3)


Поскольку pymssql зависит от FreeTDS, вам действительно нужно указать параметры подключения к вашему серверу MS-SQL, используемому FreeTDS.

Поскольку ApplicationIntent указан в руководстве пользователя freetds в качестве опции, вы должны иметь возможность его использовать. .

person Steve    schedule 29.06.2016
comment
Ссылка больше не работает. Вот новый. - person costigator; 05.01.2021

Единственный способ настроить намерение подключения только для чтения с pymssql, похоже, - настроить freetds, на котором он основан, но у меня это не сработало. Мне пришлось использовать pyodbc вместо pymssql

from pyodbc import connect
conn = connect(
    'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + host + ';PORT=' + port + ';DATABASE='
    + database + ';UID=' + user + ';PWD=' + password + ';ApplicationIntent=ReadOnly')
person Jack    schedule 11.10.2018
comment
Спасибо за решение, все работает! Единственное требование состоит в том, что в системе должен быть установлен драйвер ODBC для MSSQL. Например, на моем компьютере с Windows 10 я установил это. - person costigator; 05.01.2021

pyodbc имеет параметр только для чтения. Например:

import pyodbc
conn = pyodbc.connect(driver='{SQL Server}', host=Server, database=Database,
                  trusted_connection='yes', user='', password='', readonly = True)
person Hobbes    schedule 21.07.2016
comment
Любая причина, по которой это было отмечено как бесполезное? У меня нормально работает без проблем? - person Neil S; 20.06.2019
comment
Вероятно, потому что вопрос касается pymssql, а не pyodbc. - person Nathan Griffiths; 03.11.2020