在C#中使用AMO进行连接时,角色从Azure Analysis Services数据库返回null

问题描述 投票:1回答:1

我有一个表格兼容级别为1400的表格Azure Analysis Services数据库。当我连接并尝试使用AMO包检索角色时,Roles属性始终为null,与DatabasePermissions中提到的this answer属性相同。

我正在使用Tabular.Server推荐的Tabular.Databaseofficial docs物体。

我已将代码基于this answer,我使用管理员帐户进行连接。

证明在我访问的数据库上设置了角色:

enter image description here

检查数据库对象:

enter image description here

有趣的是,我在同一个Azure Analysis Services服务器中有两个其他数据库,他们有同样的问题。

我的代码:

using (Server server = new Server())
        {
            string serverDomain = "australiasoutheast.asazure.windows.net";
            string serverName = "redacteddevpilotv1";
            string databaseModel = "PilotV1";
            string serverAddress = $"asazure://{serverDomain}/{serverName}";
            //string token = await GetAccessToken($"https://{serverDomain}");
            //string connectionString = $"Provider=MSOLAP;Data Source={serverAddress};Initial Catalog={databaseModel};User ID=;Password={token};Persist Security Info=True;Impersonation Level=Impersonate";
            string connectionString = $"Provider=MSOLAP;Data Source={serverAddress};Initial Catalog={databaseModel};User ID=redacted;Password=redacted;Persist Security Info=True;Impersonation Level=Impersonate";

            var t = server.SupportedCompatibilityLevels;
            var x = server.Roles;

            server.Connect(connectionString);

            t = server.SupportedCompatibilityLevels;
            x = server.Roles;

            Database d = server.Databases.FindByName(databaseModel);
        }

The documentation进入如何添加角色而不是如何检索它们...

c# ssas roles ssas-tabular azure-analysis-services
1个回答
0
投票

事实证明,我需要通过database.Roles访问它们,而不是通过database.Model.Roles访问角色。我不知道为什么会这样,或者是否记录在案,但我被another question置于这个事实上。

执行此操作后,我现在可以访问我想要的ModelRole对象。

© www.soinside.com 2019 - 2024. All rights reserved.