При работе с ssas из powershell (или C # в этом отношении) вы можете использовать пространство имен analysisservices
корпорации Майкрософт: Службы анализа Microsoft .
Это объектно-ориентированный способ работы.с базами данных ssas.
Это старый скрипт, который я написал для сопровождающих:
function addRoleToDb {
$roleName = Read-Host "How should this role be called?"
if ($global:dataBase.Roles.findByName($roleName)) {
echo "This role already exists"
return
} elseif ($roleName -eq "") {
echo "You can't give an empty name for a role."
return
}
echo "Warning: this role will start out empty and will have to be modified in order to be used. (it wil have read permission)"
[Microsoft.AnalysisServices.Role] $newRole = New-Object([Microsoft.AnalysisServices.Role])($roleName)
$global:dataBase.Roles.add($newRole)
$dbperm = $global:dataBase.DatabasePermissions.add($newRole.ID)
$dbperm.Read = [Microsoft.AnalysisServices.ReadAccess]::Allowed
$global:dataBase.Roles.Update()
$dbperm.Update()
return
}
На данный момент у меня уже была база данных глобальных переменных.Это метод, который добавляет роль в базу данных.Удаление базы данных будет работать практически так же, вы получите экземпляр роли с:
role = database.roles.findbyname()
или
role = database.roles.findbyid()
, а затем
role.Drop(DropOptions.AlterOrDeleteDependents);
YouЯ должен проверить эту последнюю строку перед использованием, потому что alterordeletedependants
- это то, что я сейчас использую в своей программе на c #, я не помню, работал ли он в powershell.
Удачи!