Ben*_*Ben 2 python azure-sql-database azure-web-app-service
我正在尝试将 Azure 应用服务 Web 应用中运行的 Python Flask 应用连接到 Azure SQL 数据库。当我使用带有用户名和密码的 SQL 身份验证时,效果很好。
现在我想转而使用 Web Apps 托管身份。我已激活系统分配的托管标识,在 SQL 中为其创建用户并将其添加到 db_datareader 角色。
我使用这样的连接字符串与 SqlAlchemy 连接
params = urllib.parse.quote_plus(os.environ['SQL_CONNECTION_STRING'])
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
engine_azure = db.create_engine(conn_str,echo=True)
Run Code Online (Sandbox Code Playgroud)
连接字符串存储为应用程序设置,其值为
"Driver={ODBC Driver 17 for SQL Server};Server=tcp:<server>.database.windows.net,1433;Database=<database>;Authentication=ActiveDirectoryMsi;"
Run Code Online (Sandbox Code Playgroud)
我希望这就是我需要做的全部,但现在我的应用程序没有启动。日志报告连接数据库时超时。
我怎样才能解决这个问题?
我知道这是一篇相当老的文章,但它可能会帮助像我这样正在寻找解决方案的人。
您可以通过将“Authentication”参数添加为“ActiveDirectoryMsi”来修改连接字符串,无需使用端点和标头。
(与 Azure SQL 配合使用,对于 Postgress 等其他数据库,您可能需要使用结构令牌)
import pyodbc
pyodbc.connect(
"Driver="
+ driver
+ ";Server="
+ server
+ ";PORT=1433;Database="
+ database
+ ";Authentication=ActiveDirectoryMsi")
Run Code Online (Sandbox Code Playgroud)
我为那些对 Azure MSI 感兴趣的人写了一篇快速文章: https://hedihargam.medium.com/python-sql-database-access-with-management-identity-from-azure-web-app-functions-14566e5a0f1a
| 归档时间: |
|
| 查看次数: |
7387 次 |
| 最近记录: |