Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 在2019年Ssrs中,如何解释任务掩码和角色标签?_Reporting Services_Ssrs 2019 - Fatal编程技术网

Reporting services 在2019年Ssrs中,如何解释任务掩码和角色标签?

Reporting services 在2019年Ssrs中,如何解释任务掩码和角色标签?,reporting-services,ssrs-2019,Reporting Services,Ssrs 2019,如果执行操作,请从角色中选择*,其中1=1在Ssrs数据库目录中,可以看到如下内容: 如何解释“任务掩码”和“角色标签”中的值?我在网上到处都找到了部分信息,但没有从微软那里找到任何信息。在网上没有什么很容易发现的东西,所以我去反编译ReportingServicesLibrary.dll(我使用了“”)并进行搜索,直到在Microsoft.ReportingServices.Library.AuthzData类中找到了我要查找的内容 关于Ssrs数据库目录中的“角色”表,我发现了以下内容:

如果执行
操作,请从角色中选择*,其中1=1
在Ssrs数据库目录中,可以看到如下内容:


如何解释“任务掩码”和“角色标签”中的值?我在网上到处都找到了部分信息,但没有从微软那里找到任何信息。

在网上没有什么很容易发现的东西,所以我去反编译ReportingServicesLibrary.dll(我使用了“”)并进行搜索,直到在Microsoft.ReportingServices.Library.AuthzData类中找到了我要查找的内容

关于Ssrs数据库目录中的“角色”表,我发现了以下内容:

  • 存储在
    Roles.RoleFlags
    中的值实际上只是
    SecurityScope
    enum的基础值。它们指示用于解释任务掩码的枚举
  • 存储在
    角色.TaskMask
    中的值对应于
    CatalogItemTaskEnum
    CatalogTaskEnum
    ModelItemTaskEnum
    枚举的成员。“1”表示成员/设置为“开”,而“0”表示它为“关”。从左到右读取字符串,每个位置(基于0)对应于枚举成员的基础值。如果右端缺少位置,则假定设置为“关”
  • 警告 如果要使用Sql更改角色的任务掩码,请不要直接更新它。相反,请使用
    SetRoleProperties和InValidatePolicys
    存储过程。该存储过程负责将链接到角色的所有现有策略(将数据标记为“脏”)上的
    SecData.NtSecDescState
    列设置为1。下次Ssrs ReportServer服务检查策略更新时,它将更新存储在
    SecData.NtSecDescPrimary
    列中的序列化(
    AceCollection
    )数据,用于该表中的所有“脏”记录,以用于授权扩展。(当检查权限/访问权限时,授权扩展将显示
    SecData
    data。)

    例如。 考虑内置的“文件夹查看器”角色。由于
    RoleFlags
    是“0”,对应于
    SecurityScope。CatalogItem
    和means
    TaskMask
    使用
    catalogitemtasknum
    进行解释。接下来,由于
    TaskMask
    是“0000001000000000000”,这意味着它们拥有
    ViewFolders
    任务权限,因为“1”位于
    TaskMask
    字符串中的位置/索引6(从零开始),并且
    CatalogItemTaskEnum.ViewFolders
    的基础值为6

    代码定义
    内部枚举安全范围
    {
    目录项,
    目录
    模型项
    }
    内部枚举CatalogItemTaskEnum
    {
    无效=268435455,
    ConfigureAccess=0,
    创建LinkedReports,
    查看报告,
    管理报告,
    查看资源,
    管理资源,
    查看文件夹,
    管理文件夹,
    管理快照,
    订阅
    管理任何订阅,
    ViewDataSources,
    管理数据源,
    视图模型,
    管理模式,
    消费者报告,
    评论,,
    经理评论
    }
    内部枚举目录任务枚举
    {
    无效=268435455,
    ManageRoles=0,
    管理系统安全,
    ViewSystemProperties,
    ManageSystemProperties,
    ViewSharedSchedules,
    ManageSharedSchedules,
    生成事件,
    管理工作,
    ExecuteReportDefinitions
    }
    内部枚举ModelItemTaskEnum
    {
    无效=268435455,
    ViewModelItems=0
    }
    
    多年来,他们添加了一些项目。例如,Ssrs2012中不存在
    CatalogItemTaskEnum.Comment