我想使用带有 MSI(托管服务标识)身份验证的应用服务 API(Java)访问 Azure SQL 数据库。
我正在尝试找出如何将 Azure sql 与用于 Java 的 Azure App 服务的 MSI 连接起来。
这是我正在使用的连接字符串。
jdbc:sqlserver://mysqldb.database.windows.net:1433;database=TestDB;Authentication=ActiveDirectoryMsi;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
这是我使用的步骤:
- 创建 AAD 组
- 将 Azure Web 应用的 MI(托管标识)添加到此 AAD 组
- 将此组作为 Active Directory 管理员添加到 Azure SQL Server
为该组创建用户并赋予角色。
CREATE USER [myAADgroup] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [myAADgroup]; ALTER ROLE db_datawriter ADD MEMBER [myAADgroup]; ALTER ROLE db_ddladmin ADD MEMBER [myAADgroup];
JDBC 驱动程序的连接字符串。