如何删除权限、成员或角色?
How to remove a permission, a member, or a role?
我在下面有这个脚本来添加角色、成员和权限
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()
如何删除权限、成员和角色?
我至少尝试过这个角色,但是控制台 returns 返回 "False"
$TabDB.Model.Roles.Remove($AddRole)
从 powershell(或 C#)使用 ssas 时,您可以使用微软的 analysisservices
命名空间:
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 = database.roles.findbyid()
然后
role.Drop(DropOptions.AlterOrDeleteDependents);
你应该在使用它之前检查最后一行,因为 alterordeletedependants
是我现在在我的 c# 程序中使用的东西,我不记得它是否在 powershell 中工作。
祝你好运!
我在下面有这个脚本来添加角色、成员和权限
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()
如何删除权限、成员和角色?
我至少尝试过这个角色,但是控制台 returns 返回 "False"
$TabDB.Model.Roles.Remove($AddRole)
从 powershell(或 C#)使用 ssas 时,您可以使用微软的 analysisservices
命名空间:
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 = database.roles.findbyid()
然后
role.Drop(DropOptions.AlterOrDeleteDependents);
你应该在使用它之前检查最后一行,因为 alterordeletedependants
是我现在在我的 c# 程序中使用的东西,我不记得它是否在 powershell 中工作。
祝你好运!