Роли возвращаются как нулевые из базы данных служб аналитики Azure при подключении с помощью AMO в C # - PullRequest
1 голос
/ 26 марта 2019

У меня есть табличная база данных служб аналитики Azure с уровнем совместимости 1400. Когда я подключаюсь и пытаюсь получить роли с помощью пакета AMO, свойство Roles всегда равно null, то же самое для свойства DatabasePermissions, котороеупомянутый в этот ответ .

Я использую объекты Tabular.Server и Tabular.Database, как рекомендовано в официальных документах .

У меня естьна основе моего кода отключен этот ответ , и я подключаюсь, используя учетную запись администратора.

Подтверждение того, что роли установлены на той БД, к которой я обращаюсь:

enter image description here

Проверка объекта базы данных:

enter image description here

Интересно, что у меня есть две другие базы данных в одной и той же службе аналитики Azureсервера, и они имеют ту же проблему.

Мой код:

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);
        }

Документация посвящена тому, как добавлять роли, а не как их извлекать ...

1 Ответ

0 голосов
/ 26 марта 2019

Получается, что вместо доступа к ролям через database.Roles мне нужно получить к ним доступ через database.Model.Roles. Я не уверен, почему это так, или если это где-то задокументировано, но я задал этот факт другим вопросом .

После этого у меня теперь есть доступ к ModelRole объектам, которые я хочу.

...