Добавление ColumnPermission для роли в сервисе табличного анализа 1400 с использованием C# - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь добавить разрешение на столбец для роли в табличной модели, используя C#. Ниже приведен мой фрагмент кода.

using Microsoft.AnalysisServices;
using Microsoft.AnalysisServices.Tabular;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;

namespace RoleCreation
{
    class Program
    {
        static void Main(string[] args) { RoleCreation(); }


        public static void RoleCreation()
        {

            string serverName = "*******";
            string databaseName = "*******";

            string serverConnectionString = string.Format("Provider=MSOLAP;Data Source=Provider=MSOLAP.8;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog="*******";;Data Source="*******";;MDX Compatibility=1;MDX Missing Member Mode=Error;Update Isolation Level=2", serverName);

            Microsoft.AnalysisServices.Tabular.Server server = new Microsoft.AnalysisServices.Tabular.Server();
            server.Connect(serverConnectionString);

            Microsoft.AnalysisServices.Tabular.Database db = server.Databases[databaseName];

            Model model = db.Model;
            
            Table TableSampl = db.Model.Tables.Find("MyTable");

            ModelRole newRole = new ModelRole
            {
                Name = "TestRole"
            };
            
            TablePermission newTablePer = new TablePermission
            {
                Name = "MyTable",
                FilterExpression = "[Col1] in {11}"

            };
            
            ColumnPermission newColumnPesr = new ColumnPermission()
            {
                Name = "Data",
                MetadataPermission = MetadataPermission.None
            };

            newTablePer.Table = TableSampl;

            newTablePer.ColumnPermissions.Add(newColumnPesr); //Adding ColumnPermission to a Tablepermission
            
            newRole.TablePermissions.Add(newTablePer); //Adding TablePermission to a Role

            newRole.ModelPermission = ModelPermission.Read;
            
            model.Roles.Add(newRole);
            
            db.Update(UpdateOptions.ExpandFull);
        }

    }
}

Здесь я добавляю новую роль и разрешение таблицы для роли. Эти две вещи работают. Но при попытке добавить разрешение столбца я получаю сообщение об ошибке:

Microsoft.AnalysisServices.OperationException: 'Не удалось сохранить изменения на сервере. Возвращена ошибка: «Произошла непредвиденная ошибка (файл tmsavepoint. cpp, строка 1528, функция TMSavePoint :: GetProxyImpl»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...