使用pymssql时如何传递连接参数“ApplicationIntent=ReadOnly”

问题描述 投票:0回答:4

我只有 SQL Server 数据库的只读访问权限。使用pymssql连接数据库时如何传递连接参数“ApplicationIntent=ReadOnly”?如果 pymssql 不支持,我可以使用其他 python 库吗?

python sql-server pymssql
4个回答
3
投票

使用 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')

1
投票

因为pymssql依赖于FreeTDS 您确实需要解决 FreeTDS 使用的 MS-SQL 服务器的连接参数

因为 ApplicationIntent 在 freetds 用户指南 中作为一个选项列出,您应该能够使用它。


0
投票

pyodbc 有一个只读参数。 例如:

import pyodbc
conn = pyodbc.connect(driver='{SQL Server}', host=Server, database=Database,
                  trusted_connection='yes', user='', password='', readonly = True)

0
投票

最新版本的 pymssql 已启用 read_only 属性。

pymssql.connect("host", "user", "pwd", "database", read_only=True)
© www.soinside.com 2019 - 2024. All rights reserved.