使用托管身份将Django与Azure MS SQL Server DB连接

8ehkhllq  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(142)

如何通过托管身份将Azure MS SQL Server数据库连接到Django。
目前我的Djangosettings.py文件看起来像这样:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'HPI_SI_DB',
        'HOST': 'abcengine.database.windows.net',
        'USER': 'xyz',
        'PASSWORD': '*******',
        'OPTIONS': {'driver': 'ODBC Driver 17 for SQL Server', }
    },
    'DB2': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'HPI_SI_DB',
        'HOST': 'abcdengine.database.windows.net',
        'USER': 'xyz',
        'PASSWORD': '*******',
        'OPTIONS': {'driver': 'ODBC Driver 17 for SQL Server', }
    }
}

字符串

1wnzp6jl

1wnzp6jl1#

从文档

ActiveDirectoryMsi

要使用托管标识,请将Authentication=ActiveDirectoryMsi添加到extra_params

DATABASES = {
  "default": {
      "ENGINE": "mssql",
      "NAME": "your_db",
      "HOST": "database.windows.net",
      "PORT": "1433",
      "OPTIONS": {
          "driver": "ODBC Driver 17 for SQL Server",
          "extra_params": "Authentication=ActiveDirectoryMsi",
      },
  },
}

字符串
如果你想运行单元测试,那么测试数据库必须手动创建,你需要传入--keepdb参数。
如果出现VIEW ANY COLUMN MASTER KEY DEFINITION permission denied in database错误,请运行EXEC sp_addrolemember N'db_owner', N'<Name>',将<Name>替换为系统分配的托管标识中的VM名称或用户分配的托管标识中的托管标识名称。

相关问题