Nei*_*l P 3 c# azure-data-factory azure-batch azure-analysis-services
我有一个使用 AMO 库连接到 Azure 分析服务的 ac 类库。
我想使用它作为我的数据工厂管道的一部分来刷新多维数据集分区。这是通过 Azure 批处理作为自定义 .net 活动完成的。
var server = new Server();
server.Connect("Provider=MSOLAP;Data Source=asazure://uksouth.asazure.windows.net/abcd;Initial Catalog=xyz");
Run Code Online (Sandbox Code Playgroud)
在本地运行这个工作正常,但是这不会在云中运行。它目前出错,因为它不在我的用户帐户下运行。我知道我可以在连接字符串中添加用户名和密码,但如果可能的话,我更愿意给它某种形式的授权。
是否还有其他方法可以使用 Azure 分析服务进行身份验证?
现在可以使用服务帐户连接到 AAS。
在此处查看自定义活动的工作示例。
它的连接部分可以简化为:
var authority = "https://login.windows.net/<tenant-id>";
var resource = "https://southcentralus.asazure.windows.net";
var appId = "***";
var appSecret = "***";
AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential credentials = new ClientCredential(appId, appSecret);
var task = authContext.AcquireTokenAsync(resource, credentials);
task.Wait();
string token = task.Result.AccessToken;
var connectionStringTemplate = "Provider=MSOLAP;Data Source=asazure://southcentralus.asazure.windows.net/xxxxxx;Initial Catalog= xxx;User ID=;Password={0};Persist Security Info=True;Impersonation Level=Impersonate";
var connectionString = string.Format(CultureInfo.InvariantCulture, connectionStringTemplate, token);
var server = new Server();
server.Connect(connectionString);
Run Code Online (Sandbox Code Playgroud)
您需要为您的服务帐户提供对格式为 的 AAS 模型的访问权限app:<appId>@<tenantId>。