是否可以运行基于基于Azure AD令牌的身份验证(通过使用AD服务主体)连接到Azure SQL的liquibase命令行迁移? (这意味着不会在连接字符串或属性中传递用户名或密码)
我能够运行Java代码,使用here中所述的身份验证方法打开与Azure SQL DB的JDBC连接。
这需要针对AD进行身份验证,并使用ADAL4J库检索访问令牌,然后在调用getConnection()之前将该令牌传递给DataSource对象。
代码摘录:
SQLServerDataSource ds = new SQLServerDataSource();
ds.setServerName("aad-managed-demo.database.windows.net");
ds.setDatabaseName("demo");
ds.setAccessToken(accessToken);
Connection connection = ds.getConnection();
但是,在运行liquibase命令行迁移时,无法设置accesstoken属性,因为该属性不在有效属性列表中。并且根据文档,不能通过连接字符串设置访问令牌。
是否可以使用这种身份验证方法使liquibase连接到SQL DB?
这是否需要使用自定义的Properties类实现? (请参阅命令行选项:--propertyProviderClass)
有关如何做到这一点的任何指针?