通过Python模拟Windows用户

通过Python模拟Windows用户,python,authentication,nginx,flask,impersonation,Python,Authentication,Nginx,Flask,Impersonation,我目前正在使用Python Flask开发一个内部web应用程序。应用程序将连接到内部SQL Server 当我在笔记本电脑上运行该工具时,连接到数据没有问题,因为这使用了我的凭据,但是当部署时,该应用程序将在Nginx上的停靠kubernetes群集上运行 因此,当用户试图访问数据库时,我希望能够模拟给定的用户帐户 SQL server是使用windows身份验证设置的,因此用户/通行证将毫无用处 我当前的连接字符串如下所示 params = urllib.parse.quote_plus(&

我目前正在使用Python Flask开发一个内部web应用程序。应用程序将连接到内部SQL Server

当我在笔记本电脑上运行该工具时,连接到数据没有问题,因为这使用了我的凭据,但是当部署时,该应用程序将在Nginx上的停靠kubernetes群集上运行

因此,当用户试图访问数据库时,我希望能够模拟给定的用户帐户

SQL server是使用windows身份验证设置的,因此用户/通行证将毫无用处

我当前的连接字符串如下所示

params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};"
                                 "SERVER=<servername>;"
                                 "DATABASE=<db name>;"
                                 "Trusted_Connection=yes")
params=urllib.parse.quote_plus(“驱动程序={SQL Server本机客户端11.0};”
“服务器=;”
“数据库=;”
“受信任的连接=是”)
您知道如何将给定的windows用户帐户传递/模拟到sqlalchemy,以便我可以像处理其他事情一样管理SQL server上的用户访问级别吗?

请参阅@GordThompson的文章。基本上不能,连接字符串参数
UID
PWD
trusted\u connection=yes
是互斥的

我还鼓励您重新考虑数据库连接设计。按照您所描述的,您的应用程序必须为每个用户管理数据库连接。相反,请尝试从应用程序建立单个数据库连接,并通过应用程序管理用户对数据库资源的权限