我已使用 REST API 在 ADF V2 中自动刷新 AAS 表格模型。表格模型使用 AAD 凭据将 Azure SQL DB 作为数据源之一进行部署,但问题是授权的有效期仅为 2 小时。 为了实现授权自动化,我了解到我们可以使用 TMSL 脚本(示例脚本显示在最后)更改 Sql Server Management Studio 中 AAS Server 下的模型/数据库。
我尝试通过提供 Web SPN 和我的 azure id 凭据,使用 AAD 的授权类型“密码”oauth2 身份验证来生成刷新令牌和访问令牌。我在 alter json TMSL 脚本的凭据属性下提供了令牌,但它不起作用。当我处理数据库时,它显示错误“为 SQL 源提供的凭据无效。(源位于 SQL/Server 名称;数据库名称。)。异常是由 IDbCommand 接口引发的。”
{
"alter": {
"object": {
"database": "Det_clone",
"dataSource": "SQL/Server name;DB name"
},
"dataSource": {
"type": "structured",
"name": "SQL/Server name;DB name",
"connectionDetails": {
"protocol": "tds",
"address": {
"server": "server address",
"database": "DB name"
}
},
"credential": {
"AuthenticationKind": "OAuth2",
"kind": "SQL",
"path": "SQL/Server name;DB name",
"AccessToken":"***",
"RefreshToken":"***"
}
}
}
}
您成功解决这个问题了吗?我遇到了类似的问题,因为我希望能够使用服务主体以非交互方式处理模型,但这不断要求访问令牌,这意味着我必须在每次运行之前不断更改令牌部分,作为令牌会一直过期。不知道是否有更好的解决方案。