如何用Python通过Windows认证连接SQL Server视图?遇InterfaceError 28000
解决SQL Server连接"InterfaceError 28000"访问被拒问题
问题根源
你的连接字符串里Database参数配置错误:视图的完整路径格式是服务器名.数据库名.架构名.视图名,但Database字段只需要填写数据库名称,不需要包含架构和视图信息。你把整个视图路径塞进Database参数,导致数据库连接逻辑混乱,进而触发访问被拒错误。
修正后的连接代码
import pyodbc # 修正连接字符串:Database仅指定数据库名 conn_str = ( r'Driver=SQL Server;' r'Server=Serverlocation\Server;' r'Database=Server.DW.Application;' # 移除多余的架构与视图部分 r'Trusted_Connection=yes;' ) # 建立连接并查询目标视图 cnxn = pyodbc.connect(conn_str) cursor = cnxn.cursor() # 查询视图时必须指定架构和视图名 cursor.execute('SELECT * FROM [Application_AdHoc].[DepartmentDailySummary]') rows = cursor.fetchall() # 示例:遍历打印查询结果 for row in rows: print(row) # 关闭资源 cursor.close() cnxn.close()
额外注意事项
- 确认你的Windows账号已被正确授予该视图的SELECT权限(若权限有疑问,可联系数据库管理员核实)
- 如果改用SQL Server账号认证而非Windows集成认证,需将
Trusted_Connection=yes替换为UID=你的账号;PWD=你的密码;
内容的提问来源于stack exchange,提问作者thomasglanz99
相关产品推荐
相关产品推荐

