pyodbc connection to MSSQL 2005 server via IIS7(pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器)
问题描述
我已经在我的笔记本电脑上安装并配置了 IIS7,并带有一个 python cgi 界面.我可以从 Eclipse 中运行 python 脚本并从数据库中获取我正在寻找的结果.但是当我从网页运行脚本时,我得到一个身份验证错误.似乎连接字符串没有将凭据传递给 SQL 服务器.有什么想法吗?
I have IIS7 installed and configured on my laptop and with a python cgi interface. I can run the python script from within Eclipse and get the results I am looking for from the database. But when I run the script from the webpage I get an authentication error. It seems that the connection string is not passing the credentials to the SQL server. Any thoughts?
import pyodbc
import cgi
import cgitb; cgitb.enable()
cnxn = pyodbc.connect(driver='{SQL Server}',
server='SERVERINSTANCE',
Trusted_Connection='yes',
database='Test_Chad',
uid='SERVERusername',
pwd='password')
def getRow():
cursor = cnxn.cursor()
cursor.execute("select user_id, user_name from users")
row = cursor.fetchone()
print 'name:', row.user_id
print 'name:', row.user_name
getRow()
例外:
<class 'pyodbc.Error'>: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
(18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (18456)")
args = ('28000', r"[28000] [Microsoft][ODBC SQL Server Driver][SQL ... for user 'NT AUTHORITYANONYMOUS LOGON'. (18456)")
message = ''
推荐答案
决定要使用哪种形式的身份验证,数据库或 Windows.不能同时使用.
Decide which form of authentication you want to use, database or Windows. You can't use both.
如果您想使用 Windows 身份验证,请将您的连接设置更改为以下内容:
If you want to use Windows authentication, change your connection setup to the following:
cnxn = pyodbc.connect(driver='{SQL Server}', server='SERVERINSTANCE',
database='Test_Chad', trusted_connection='yes')
通过 Windows 身份验证将 Web 应用程序连接到数据库需要一些其他配置.如果您的 Web 应用程序在 IIS 中使用匿名身份验证,则将使用运行 Web 应用程序的应用程序池的标识来建立数据库连接.这是设置此身份的屏幕截图:
Connecting a web application to a database via Windows authentication requires some other configuration. If your web application uses anonymous authentication in IIS, the database connection will be made using the identity of the application pool in which the web app runs. Here is a screenshot of where this identity is set:
如果您想使用简单的数据库身份验证,请为 uid
和 pwd
提供适当的值,并删除 Trusted_Connection=yes
::p>
If you want to use simple database authentication, provide the appropriate values for uid
and pwd
, and remove Trusted_Connection=yes
:
cnxn = pyodbc.connect(driver='{SQL Server}', server='SERVERINSTANCE',
database='Test_Chad', uid='username', pwd='password')
这篇关于pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:pyodbc 通过 IIS7 连接到 MSSQL 2005 服务器
基础教程推荐
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 筛选NumPy数组 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01