Пример использования операции SetMbSec для создания нового пользователя репозитория. В запросе передается наименование создаваемого пользователя и его базовые параметры. В ответе приходит обновленный список пользователей репозитория.
{
"SetMbSec" :
{
"tMbSec" :
{
"id" : "S2!M"
},
"tArg" :
{
"pattern" :
{
"users" : "Add",
"credsCache" : "Add"
},
"meta" :
{
"users" :
{
"its" :
{
"it" :
[
{
"k" : "0",
"id" : "PPUser",
"n" : "PPUser",
"vis" : "true",
"type" : "User",
"sid" :
{
"sid" : ""
},
"data" :
{
"desc" : "",
"isNT" : "false",
"tag" : "",
"user" :
{
"mustChangePasswordAtNextLogon" : "true",
"lockedState" : "NotLocked",
"maxLogonSessions" : "3",
"credentials" :
{
"pass" : "PPUser"
}
}
}
}
]
}
},
"credsCache" :
{
"its" :
{
"it" :
[
{
"realm" : "$SYSTEM",
"admin" : "true",
"creds" :
{
"user" :
{
"id" : "sa"
},
"pass" : "Qwerty1"
}
}
]
}
}
},
"metaGet" :
{
"pattern" :
{
"users" : "Get"
}
}
}
}
}
{
"SetMbSecResult" :
{
"id" :
{
"id" : "S2!M"
},
"metaGet" :
{
"id" :
{
"id" : "S2!M"
},
"meta" :
{
"users" :
{
"its" :
{
"it" :
[
{
"k" : "2147483649",
"id" : "ADMIN",
"n" : "Пользователь",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "ACE44119CCF4F3EB315E1B1EF525736",
"type" : "User"
}
},
{
"k" : "5412",
"id" : "SACHA",
"n" : "Пользователь0",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "ACE44154129CCF4F3EB315E1B1EF525736",
"type" : "User"
}
},
{
"k" : "5413",
"id" : "SACHA1",
"n" : "Пользователь0",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "ACE44154139CCF4F3EB315E1B1EF525736",
"type" : "User"
}
},
{
"k" : "5414",
"id" : "SACHA2",
"n" : "Пользователь0",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "ACE44154149CCF4F3EB315E1B1EF525736",
"type" : "User"
}
},
{
"k" : "2147483645",
"id" : "PROGNOZ\KATAEVA",
"n" : "Kataeva, Yuliya Yu.",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "S-1-5-21-1287548229-1982989762-879972363-15585",
"type" : "User"
}
},
{
"k" : "8208",
"id" : "PPUSER",
"n" : "PPUser",
"vis" : "1",
"type" : "User",
"sid" :
{
"sid" : "ACE44182089CCF4F3EB315E1B1EF525736", "type" : "User" } } ] } } } } } }
Указанная ниже функция CreateUser создает пользователя репозитория. Моникер соединения с репозиторием и наименование создаваемого пользователя передаются в качестве входных параметров. Для пользователя будут выставлены необходимые параметры. Результат выполнения операции является результатом выполнения функции.
public static SetMbSecResult CreateUser(string mb, string userName)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var setMbSec = new SetMbSec()
{
tArg = new SetMbSecArg()
{
//Шаблон выполнения операции
pattern = new MbSecMdPattern()
{
users = ListOperation.Add,
credsCache = ListOperation.Add
},
meta = new MbSecMd()
{
// Учетные данные, под которыми будет осуществляться подключение к серверу БД
// Указанный пользователь должен обладать правами на создание пользователей на уровне СУБД
credsCache = new UserCredsCache
{
its = new RealmUserCreds[]
{
new RealmUserCreds
{
realm = "$SYSTEM",
admin = true,
creds = new UserCreds
{
user = new UserId { id = "sa" },
pass = "Qwerty1"
}
}
}
},
users = new MbSubjects()
{
its = new MbSubject[1]
{
new MbSubject()
{
k = 0,
id = userName,
n = userName,
vis = true,
type = MbSubjectType.User,
sid = new SubjectSid() {sid = string.Empty},
data = new MbSubjectData()
{
desc = String.Empty,
isNT = false,
user = new MbUserData()
{
mustChangePasswordAtNextLogon = true,
maxLogonSessions = 3,
lockedState = MbUserLockedState.NotLocked,
credentials = new UserCreds() {pass = userName}
},
tag = String.Empty
}
}
}
}
},
//Параметры обновления списка пользователей после выполнения операции
metaGet = new GetMbSecArg()
{
pattern = new MbSecMdPattern()
{
users = ListOperation.Get
}
}
},
//Моникер репозитория
tMbSec = new MbId() { id = mb }
};
//Создание пользователя
var result = somClient.SetMbSec(setMbSec);
return result;
}
См. также:
SOAP