Powershell 如何删除权限、成员或角色?

Powershell 如何删除权限、成员或角色?,powershell,ssas,Powershell,Ssas,我在下面有这个脚本来添加角色、成员和权限 Import-Module sqlserver $Server = new-Object Microsoft.AnalysisServices.Tabular.Server $Server.Connect("SERVER\INSTANCE") $TabDB = $SERVER.Databases["DATABASENAME"] $AddRole = new-Object Microsoft.AnalysisServices.Tabular.ModelR

我在下面有这个脚本来添加角色、成员和权限

Import-Module sqlserver
$Server = new-Object Microsoft.AnalysisServices.Tabular.Server
$Server.Connect("SERVER\INSTANCE")

$TabDB = $SERVER.Databases["DATABASENAME"]
$AddRole = new-Object Microsoft.AnalysisServices.Tabular.ModelRole
$AddRole.Name = 'NewRole1'
$AddRole.ModelPermission="Read"
$RoleMember = New-Object Microsoft.AnalysisServices.Tabular.WindowsModelRoleMember
$RoleMember.MemberName = 'DOMAIN\ACCOUNT'
$TabDB.Model.Roles.Add($AddRole)
$AddRole.Members.Add($RoleMember)
$TabDB.Update([Microsoft.AnalysisServices.UpdateOptions]::ExpandFull)
$server.Disconnect()
如何删除权限、成员和角色

我至少为角色尝试了这个,但控制台返回False

$TabDB.Model.Roles.Remove($AddRole)

在使用powershell或C中的SSA时,您可以使用microsoft的analysisservices命名空间:

这是一种使用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.Drop(DropOptions.AlterOrDeleteDependents);
您应该在使用它之前检查最后一行,因为AlterOrDeletedPendants是我现在在c程序中使用的东西,我不记得它是否在powershell中工作


祝你好运

你在脚本中的什么地方运行的remove@ArcSet我用remove代替Add。我用Add粘贴了脚本,因为表格结构很复杂,所以任何看这篇文章的人都会知道Add是如何工作的,所以删除类似。我不想在这里将这个脚本中的Add改为remove,因为它不会为阅读本文的任何人提供一个tablar如何工作的线索
role.Drop(DropOptions.AlterOrDeleteDependents);