【发布时间】:2020-09-30 14:41:30
【问题描述】:
我查看了sqlalchemy engine interface dialect 列出的文档,但看不到它在哪里说明如何执行此操作。
我知道我需要使用trusted_connection = 'yes',但我想知道它在哪里说这是我们需要做的。
有人能指点我正确的方向吗?
【问题讨论】:
标签: python sql-server python-3.x sqlalchemy pyodbc
我查看了sqlalchemy engine interface dialect 列出的文档,但看不到它在哪里说明如何执行此操作。
我知道我需要使用trusted_connection = 'yes',但我想知道它在哪里说这是我们需要做的。
有人能指点我正确的方向吗?
【问题讨论】:
标签: python sql-server python-3.x sqlalchemy pyodbc
我想通了。
做什么:
1) 使用DBAPI连接数据库,在我的例子中是pyodbc。
2) 您将传递的连接字符串将基于正在使用的驱动程序,在我的例子中是ODBC Driver 11 for SQL Server。
3) 在用于我的驱动程序的语法中,它明确表示使用trusted_connection='yes' 进行 Windows 身份验证。
4) 您需要传递给create_engine 的值与您发送给正在使用的驱动程序的值相同。
详情:
1) 我在做什么:
我正在使用pyodbc 访问 SQL Server。然后我使用sqlalchemy 来处理数据库。
2) 在the documentation for SQLAlchemy 上找不到Trusted_connection = 'yes',因为它是连接字符串的一部分,而不是create_engine 的语法。
3)Documentation for pyodbc and Connection Strings。 Pyodbc 不查看连接字符串。连接字符串未经修改地传递给数据库驱动程序,并且是特定于驱动程序的。 Documentation for Connecting to databases
4) Reference for all connection strings 可以具体告诉您要连接到的每个数据库的连接字符串是什么样的。
5) 不是我最初的问题的一部分,但也对此感到好奇:仅当连接到网络外部 SQL Server 时才需要端口号。 When is Port Number Required
6) 在create engine documentation 中,它说 URL 是第一个位置参数,但是当您查看参数时,它没有指定这一点。我希望有人能证明我错了,但我确信这是真的。
【讨论】: