通过Python Flask模拟Windows用户

问题描述

我目前正在使用Python Flask开发内部网络应用。该应用程序将连接到内部SQL Server

当我在笔记本电脑上运行该工具时,由于使用我的凭据,因此可以毫无问题地连接到数据,但是在部署时,该应用程序将在Docker化的kubernetes集群上的Nginx上运行。

这样,我希望能够在用户尝试访问数据库时模拟给定的用户帐户。

SQL服务器已通过Windows身份验证进行设置,因此用户/密码将毫无用处。

我当前的连接字符串看起来像这样

params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};"
                                 "SERVER=<servername>;"
                                 "DATABASE=<db name>;"
                                 "Trusted_Connection=yes")

有什么想法如何通过/模拟给定的Windows用户帐户给sqlalchemy,以便我可以像执行其他操作一样在SQL Server上管理用户访问级别?

解决方法

请参阅@GordThompson的answer。基本上不能,连接字符串参数UIDPWDtrusted_connection=yes是互斥的。

我也鼓励您重新考虑数据库连接设计。根据您的描述,您的应用将必须管理每个用户的数据库连接。相反,请尝试从您的应用程序建立一个数据库连接,然后通过该应用程序管理对数据库资源的用户特权/权限。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...