通过 Python Flask 模拟 Windows 用户

Posted

技术标签:

【中文标题】通过 Python Flask 模拟 Windows 用户【英文标题】:Impersonate Windows User through Python Flask 【发布时间】:2020-09-02 06:00:28 【问题描述】:

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

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

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

SQL-server 设置了 windows 身份验证,所以很遗憾,用户/密码将毫无用处。

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

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

任何想法如何通过/模拟给定的 Windows 用户帐户到 sqlalchemy,以便我可以像我们做其他任何事情一样管理 SQL 服务器上的用户访问级别?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于通过 Python Flask 模拟 Windows 用户的主要内容,如果未能解决你的问题,请参考以下文章

window10下部署flask系统(apache和wsgi)

Flask模拟NRF

window下flask开发环境搭建

python_模拟登录支付接口

jenkins自动化发布python flask模拟流程

python:接口开发flask模块