我正在为我的雇主构建内部网,我决定尝试安装django服务器。我们使用包含大量数据的MSSQL 2008 windows服务器。我希望将内部网与用于身份验证的域和现有的MSSQL服务器集成起来。
一切似乎都在与MSSQL服务器的连接上进行。这个问题似乎很简单:它试图使用错误的凭据。我已经将IIS设置为使用windows身份验证并禁用匿名登录。当我进入网站时,我会被提示输入我的证书。当页面试图加载时,django抛出一个异常错误:
Exception Type: Error
Exception Value: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'DOMAIN\\DJANGO$'. (18456) (SQLDriverConnect)")
Exception Location: c:\python35\lib\site-packages\sql_server\pyodbc\base.py in get_new_connection, line 301请注意,DJANGO是我用来测试此服务器的虚拟计算机的名称。解决方案似乎就像找出如何通过django为初始MSSQL连接从IIS传递窗口登录凭据一样简单。
关于一些细节,我有:
我有django settings.py条目:
...
MIDDLEWARE_CLASSES = [
...
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.PersistentRemoteUserMiddelware',
...
]
...
WSGI_APPLICATION = 'intranet.wsgi.application' #intranet is the project name
...
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'DatabaseName',
'HOST': 'Server',
'AUTOCOMMIT': False,
}
}
...
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.RemoteUserBackend',
]
...IIS和django之间的交互是基于https://pypi.python.org/pypi/wfastcgi的教程进行的,WSIG_HANDLER被IIS上的Django : django.core.exceptions.AppRegistryNotReady:应用程序尚未加载的建议所更改(由于intranet没有一个名为wsgi_app()的模块,所以提示进行更改,不确定我是如何尝试的,但它成功了,我继续前进)。
要走到这一步需要付出很大的努力,希望这是一个简单的解决办法。我的另一个想法是放弃django sql模型系统,处理直接查询,但我宁愿在重新开发轮子之前以‘正确’的方式完成它。
发布于 2020-08-06 08:52:52
对于任何试图在Django游戏中跑来跑去的人来说,现在有点晚了,尝试一下,它对我来说是有效的:
DATABASES = {
'default': {
'NAME': 'my_database',
'ENGINE': 'sql_server.pyodbc',
'HOST': 'dbserver',
'PORT': 'XXXX',
'OPTIONS': { 'DRIVER':'SQL Server Native Client 11.0', 'Extra_Params':'Trusted_Connection=True'},
}}编码愉快!
发布于 2020-11-22 08:00:42
我有这个问题,并为我节省了此链接教程
对于Django应用程序,只需将连接更改为下面的代码,并与Identity=本地系统完美地工作
cnxn = pyodbc.connect(
"Driver={SQL Server Native Client 11.0};Server=MyServerName;Database=MyDbName; uid=MyUsernameLoginDb; pwd=MyDbPasswordLoginToDB; ")发布于 2022-08-31 14:29:22
我们可以将Django连接到MSSQL( Server)和使用mssql-django的Windows身份验证。
首先,用我们的服务器名连接到MSSQL( Server)。*我使用 Server 2019 Express

接下来,从数据库中单击“新建数据库.”

然后,将"test" to 数据库名称:“,然后单击"OK"

然后,创建"test“数据库:

接下来,从"Properties"服务器名称中单击

然后,从"Security"中,我们可以检查“服务器身份验证”是默认设置的"Windows身份验证模式“。实际上,我们可以将Django与MSSQL连接到"Windows身份验证模式“

此外,我们还可以将Django连接到MSSQL与“Server和Windows身份验证模式”,这样两种模式都可以将Django连接到MSSQLE 252与E 153Windows身份验证<代码>E 254

接下来,将下面的代码设置为"settings.py",将Django与MSSQL与Windows身份验证连接起来。下面的代码是"DESKTOP-QVRCPTA"计算机(本地主机)和“引擎”必须是“mssql”< code >E 273和E 174“name”e 275的中的Django和MSSQL的示例,它们用于E 176数据库名“test”E 277,而对于E 180“主机”E 281/code>是E 182 Windows计算机名称(设备名称)<>E 283代码。*对于“端口”,请保持空白,因为如果设置任何端口号(如"2244"、"9877"甚至"1433",即MSSQLE 293的默认端口号),将出现错误。
# "settings.py"
DATABASES = {
'default':{
'ENGINE':'mssql', # Must be "mssql"
'NAME':'test', # DB name
'HOST':'DESKTOP-QVRCPTA\SQLEXPRESS', # <server>\<instance>
'PORT':'',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
}
}此外,可以将"DESKTOP-QVRCPTA"替换为"localhost"和用户“”,而"PASSWORD"可以放入空字符串,而“端口”可以删除如下所示,以便将DjangoE 2108连接到E 1109MSSQLE 2110与Windows身份验证E 2112
# "settings.py"
DATABASES = {
'default':{
'ENGINE':'mssql',
'NAME':'test',
'USER':'', # Here
'PASSWORD':'', # Here
'HOST':'localhost\SQLEXPRESS', # Here
# 'PORT':'', # Here
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
}
}接下来,安装--最新的软件包 mssql-django
pip install mssql-django然后,进行迁移并迁移:
python manage.py makemigrations && python manage.py migrate然后,创建超级用户:
python manage.py createsuperuser现在,我们可以将Django连接到MSSQL和Windows身份验证,然后为“测试”数据库创建表。*默认模式"dbo"放在表名之前,如下所示:

这位是Django Admin

https://stackoverflow.com/questions/37444778
复制相似问题