Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用Windows身份验证连接到Microsoft SQL Server时出现问题_Sql Server_Flask_Flask Sqlalchemy - Fatal编程技术网

Sql server 使用Windows身份验证连接到Microsoft SQL Server时出现问题

Sql server 使用Windows身份验证连接到Microsoft SQL Server时出现问题,sql-server,flask,flask-sqlalchemy,Sql Server,Flask,Flask Sqlalchemy,我正在建立一个烧瓶项目,供公司内部使用。我首先使用flask和postgre,然后使用sqlalchemy,并使用以下模型格式设置连接: app = Flask(__name__) app.config.from_object('config') db = SQLAlchemy(app) 这很有效。现在出于安全原因,我们正在切换到在IIS服务器上使用带窗口身份验证的Microsoft SQL Server,但我在连接时遇到了很多问题。 我将数据库URI更改为 SQLALCHEMY_DATA

我正在建立一个烧瓶项目,供公司内部使用。我首先使用flask和postgre,然后使用sqlalchemy,并使用以下模型格式设置连接:

app = Flask(__name__)

app.config.from_object('config')

db = SQLAlchemy(app)
这很有效。现在出于安全原因,我们正在切换到在IIS服务器上使用带窗口身份验证的Microsoft SQL Server,但我在连接时遇到了很多问题。 我将数据库URI更改为

SQLALCHEMY_DATABASE_URI = "mssql+pyodbc://server/database"
我已经检查了SQL服务器配置,我非常确定这是正确的。但是我得到了错误

psycopg2.OperationalError: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
我已经研究过这个问题,并使用了pool_pre_______________________________


我已经看到了很多关于使用sqlalchemy.engine的东西的答案,但是如果可能的话,我希望使用我已经写出来的所有db.models,但是如果不可能,我可以重写一些东西。非常感谢您的帮助。

当您部署到生产环境时,Windows身份验证将成为一个问题。我建议创建一个SQL用户以连接到数据库

请尝试以下连接字符串:

mssql+pyodbc://<UID>:<PWD>@<SERVER>/<DATABASE>?driver=ODBC+Driver+17+for+SQL+Server;Trusted_Connection=no

谢谢你的回复。我尝试了上面的连接字符串,现在得到一个“无法连接到服务器:连接被拒绝(0x0000274D/10061)”有什么想法吗?另外,您能否解释一下创建sql用户以连接到db.WIndows身份验证用户是什么意思?您的域上的用户,例如“域\用户”,sql用户是在sql Server上创建的。如果要使用WIndows身份验证,从连接字符串中删除
UID
PWD
,并将
trusted\u connection=no
更改为
trusted\u connection=yes
。很遗憾,我现在尝试使用windows authIgnore Flask和SQLAlchemy时遇到了相同的错误。您能用
pyodbc
连接到您的数据库吗?。按照下面的例子。找到正确的连接字符串后,在应用程序中使用该字符串。
mssql+pyodbc://<UID>:<PWD>@<SERVER>/<DATABASE>?driver=ODBC+Driver+17+for+SQL+Server;Trusted_Connection=no
pip install pyodbc