Ниже приведен пример использования операции GetMbSec для получения описания безопасности объектов репозитория. В запросе передается моникёр соединения с репозиторием и коллекция ключей объектов, для которых будет получено описание безопасности. В ответе приходит информация о субъектах безопасности, для которых настроены какие-либо права доступа к указанным объектам репозитория.
{
"GetMbSec" :
{
"tMbSec" :
{
"id" : "S1!M"
},
"tArg" :
{
"pattern" :
{
"objects" : "true",
"objectsFilter" :
{
"keys" :
{
"i" :
[
"1",
"73"
]
}
}
}
}
}
}
{
"GetMbSecResult" :
{
"id" :
{
"id" : "S1!M"
},
"meta" :
{
"objects" :
{
"ods" :
{
"its" :
{
"d" :
[
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "OBJ1",
"n" : "Модель1",
"k" : "1",
"c" : "5125",
"p" : "66980",
"h" : "0",
"sdKey" : "66198",
"hasPrv" : "0",
"ic" : "0"
},
{
"@isShortcut" : "0",
"@isLink" : "0",
"@hf" : "0",
"i" : "OBJ2",
"n" : "obj2",
"k" : "73",
"c" : "1537",
"p" : "71",
"h" : "0",
"sdKey" : "197691",
"hasPrv" : "0",
"ic" : "0"
}
]
}
},
"sds" :
{
"its" :
{
"it" :
[
{
"k" : "66198",
"isInherited" : "1",
"isSealed" : "0",
"discrete" :
{
"aces" :
{
"it" :
[
{
"subject" :
{
"k" : "2147483649",
"id" : "АДМИНИСТРАТОРЫ",
"n" : "АДМИНИСТРАТОРЫ",
"vis" : "1",
"type" : "Group",
"sid" :
{
"sid" : "PS-2-1",
"type" : "Group"
}
},
"allow" : "1"
},
{
"subject" :
{
"k" : "2147483649",
"id" : "ADMIN",
"n" : "Пользователь",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "PS-1-1",
"type" : "User"
}
},
"allow" : "1"
}
]
}
},
"mandatory" :
{
"accessToken" :
{
"its" :
{
"it" :
[
{
"category" :
{
"k" : "1",
"id" : "КАТЕГОРИЯ",
"n" : "КАТЕГОРИЯ",
"vis" : "1"
},
"level" :
{
"k" : "0",
"id" : "Нет доступа",
"n" : "Нет доступа",
"vis" : "1"
}
}
]
}
}
}
},
{
"k" : "197691",
"isInherited" : "0",
"isSealed" : "0",
"discrete" :
{
"aces" :
{
"it" :
{
"subject" :
{
"k" : "2147483649",
"id" : "ADMIN",
"n" : "Пользователь",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "PS-1-1",
"type" : "User"
}
},
"allow" : "1"
}
}
},
"mandatory" :
{
"accessToken" :
{
"its" :
{
"it" :
[
{
"category" :
{
"k" : "1",
"id" : "КАТЕГОРИЯ",
"n" : "КАТЕГОРИЯ",
"vis" : "1"
},
"level" :
{
"k" : "0",
"id" : "Нет доступа",
"n" : "Нет доступа",
"vis" : "1"
}
}
]
}
}
}
}
]
}
}
},
"bisearchEnable" : "Full",
"apply" :
{
"onCredentialsRequired" :
{
"logonParams" :
{
"descr" : "Введите имя и пароль пользователя, обладающего правами создания таблиц в базе данных 'База данных'",
"realm" : "OBJ21909",
"toAdmin" : "1",
"logonData" :
{
"driver" : "MSSQL2012",
"server" : "v-nrspo-mssql.dev.fs.fsight.world",
"database" : "p7repository"
}
}
}
}
}
}
}
public static GetMbSecResult GetObjectSecurityDescriptor(string mb, int[] objKeys)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var getMbSec = new GetMbSec()
{
tArg = new GetMbSecArg()
{
pattern = new MbSecMdPattern()
{
objects = true,
objectsFilter = new MbSecOdFilter()
{
keys = objKeys
}
}
},
tMbSec = new MbId() { id = mb }
};
//Получение описания безопасности объектов
var result = somClient.GetMbSec(getMbSec);
return result;
}
См. также: