使用 Python 通过 Windows 身份验证连接到 SQL Server 视图?

Connecting to SQL Server view with Windows authentication using Python?

提问人:thomasglanz99 提问时间:7/14/2023 最后编辑:marc_sthomasglanz99 更新时间:10/2/2023 访问量:118

问:

我有权访问 SQL Server 数据库中的以下视图:

[Serverlocation\Server].[Server.DW.Application].[Application_AdHoc].[DepartmentDailySummary]

我是初学者,我对数据库和视图还不太了解。我收到“InterfaceError 28000”,拒绝访问我的用户。

我试着把它放在这里:

conn_str = (
r'Driver=SQL Server;'
r'Server=Serverlocation\Server;'
r'Database=[Server.DW.Application].[Application_AdHoc].[DepartmentDailySummary];'
r'Trusted_Connection=yes;'
)

cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor(
SQL-Server-2008 ODBC pyodbc Windows 身份验证

评论

4赞 Thom A 7/14/2023
您不连接到 ,而是连接到实例和数据库,然后查询 .VIEWVIEW
4赞 Charlieface 7/14/2023
Database=[Server.DW.Application]然后,您需要像查询任何其他查询一样查询视图。你真的还在使用SQL2008吗,你知道它早就不支持了吗?SELECT * FROM Application_AdHoc.DepartmentDailySummary
0赞 Thom A 7/14/2023
此外,请尽量避免使用需要分隔标识的对象的名称(如数据库的名称)。使用句点 () 尤其令人困惑,因为它们被用作部分分隔符。.

答:

0赞 الرحمن الرحیم 10/2/2023 #1

首先,将连接字符串更改为以下代码:

conn_str = (
    r'Driver=SQL Server;'
    r'Server=Serverlocation\Server;'
    r'Database=Server.DW.Application.Application_AdHoc.DepartmentDailySummary;'
    r'Trusted_Connection=yes;'
)

并使用以下更改:

import pyodbc

# Construct the connection string
conn_str = (
    r'Driver=SQL Server;'
    r'Server=Serverlocation\Server;'
    r'Database=Server.DW.Application.Application_AdHoc.DepartmentDailySummary;'
    r'Trusted_Connection=yes;'
)

# Establish a connection and create a cursor
cnxn = pyodbc.connect(conn_str)
cursor = cnxn.cursor()

# Now, you can use the cursor to interact with the database

在连接字符串中获取必要的权限以及正确的服务器和数据库名称,以成功连接到 SQL Server 数据库。如果您仍然遇到问题,请提供有关您的设置的更多信息以及任何特定的错误消息以获得进一步的帮助。