【问题标题】:User database authentication in DjangoDjango中的用户数据库身份验证
【发布时间】:2016-09-28 20:38:33
【问题描述】:

我用 Django 创建了一个基本的 CRUD Web 应用程序。每当对数据库执行操作时,执行操作的都是“服务器”用户,由 settings.py 文件定义:

default': {
    'ENGINE': "sql_server.pyodbc",
    'HOST': "MY-SERVER\SQL1",
    'USER': "AppFrontEnd",
    'PASSWORD': "MyPassword123",
    'NAME': "TEST_DB_1"
   }

由于我保留了审核表,因此我想跟踪更改来自何处以及是谁进行的。我们有几个桌面应用程序通过使用 Windows 直通身份验证来执行此操作(访问) - 但在 Django 中,我必须提供每个特定用户的数据库登录信息。

【问题讨论】:

    标签: python django


    【解决方案1】:

    我知道这是一个老问题,但这里是为未来可能遇到相同问题的 Google 员工准备的。

    我刚收到same problem。虽然我无法找到一种方法来记录站点范围内的所有内容,但我能够使其与选择查询一起使用。

    我能够通过授予 SQL 用户 IMPERSONATE 权限并在我需要登录 models.py 的数据库查询之前执行 EXECUTE AS 来完成此操作。

        cursor = self.connection.cursor()
        try:
            cursor.execute("EXECUTE AS " + get_current_user()
        except DatabaseError as e:
            cursor.close()
            raise e
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 2014-05-04
      • 2010-12-23
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      相关资源
      最近更新 更多