当前位置: 首页 > 知识库问答 >
问题:

如何限制每个项目的执行分析权限?

苏鸿志
2023-03-14

我们正在尝试设置SonarQube服务器(5.6),以便任何人都可以使用声纳扫描仪运行声纳分析,并将结果发布到SonarQube。然而,我们希望限制用户只发布特定项目密钥的分析,以防止弄乱现有的项目历史记录。

我们在权限设置上玩了很久。让我们假设我们有一个项目密钥,一个组,一个组,一个组。所有的分析都是在用户是某个组织的成员的情况下发布的。除了执行分析,我们试图添加和删除它之外,某些组被授予了某些项目密钥的所有权限。结果见下表:

基于这些结果,似乎在项目级别授予执行分析(EA)没有效果。需要有全球EA才能发布分析。然而,这使得被授予全局EA的用户能够发布所有项目的分析。我们还没有找到任何方法来限制每个项目的发布。项目级别的EA权限似乎完全多余。

有没有办法让用户只发布特定项目的分析?更准确地说,有没有一种方法可以允许用户在不授予其全局EA的情况下发布分析?

谢谢你的建议

编辑:我将SonarQube日志级别设置为debug,但仍然没有任何线索。授予全局执行分析后,一切正常,日志显示:

2016.08.19 17:13:42 DEBUG web[http] POST /api/ce/submit?projectKey=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=4279ms

2016.08.19 17:13:43 INFO  ce[o.s.s.c.t.CeWorkerCallableImpl] Execute task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar

2016.08.19 17:13:48 INFO  ce[o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | type=REPORT | id=AVajXWLL944EkuNYd4rD | submitter=pavel.sindelar | time=4456ms

在项目级别授予已执行的分析(授予所有项目权限)后,有403个HTTP状态代码和响应体:

{"errors":[{"msg":"Insufficient privileges"}]}

SonarQube日志不包含任何错误信息,只有收到的POST请求的一行,与分析发布无关,没有错误,甚至在跟踪级别上也没有:

2016.08.22 10:15:57 DEBUG web[http] POST /api/ce/submit?projectKey=project=zz.yyy:xxx-exp&projectName=xxx&projectBranch=xxx | time=564ms

我们将尝试更新到6.0。

共有1个答案

史智志
2023-03-14

您可能会错过一些东西,并混合了一些权限,因为您想要实现的正是SonarQube 5.4中使用SONAR-7174所做的。

以下场景有效:

  1. 你创建了一个项目
 类似资料:
  • 本文向大家介绍asp.net core项目mvc权限控制:分配权限,包括了asp.net core项目mvc权限控制:分配权限的使用技巧和注意事项,需要的朋友参考一下 前面的文章介绍了如何进行权限控制,即访问控制器或者方法的时候,要求当前用户必须具备特定的权限,但是如何在程序中进行权限的分配呢?下面就介绍下如何利用Microsoft.AspNetCore.Identity.EntityFramew

  • 本文向大家介绍Zookeepr 如何进行权限控制?相关面试题,主要包含被问及Zookeepr 如何进行权限控制?时的应答技巧和注意事项,需要的朋友参考一下 ZooKeeper 采用 ACL(AccessControlLists)策略来进行权限控制,类似于 UNIX 文件系统的权限控制。 对于 znode 操作的权限,ZooKeeper 提供了以下 5 种: CREATE : 能创建子节点 READ

  • 问题内容: 有些sql写得不好。有时,搜索需要花费数小时的申请时间。当一个应用程序(可能是一个网站)提交运行时间很长的查询时,我必须重新启动mysql。如何在数据库端限制sql查询的执行时间? 问题答案: 要在很长的执行时间后自动终止MySQL中的查询,请执行以下操作: 创建一个存储过程为: 然后在curosr的循环中执行以下操作: 创建,只是里面的上述步骤。 注意:KILL QUERY只是杀死查

  • 3)现在,当我运行analyis for javascript项目(使用jquery、Require.js、Bootstrape.js文件)时,它会抛出一个错误--“解析器错误”、“sonar runner执行过程中的错误。无法执行sonar。由:Java堆空间造成”。我试图增加sonar.properties文件中的堆大小,但没有帮助。 4)所以我开始使用sonarqube.scanner.ms

  • 我有Spark 2.1.0运行在一个有N个从节点的集群上。每个节点有16个内核(8个内核/cpu和2个cpu)和1个GPU。我想使用map进程启动一个GPU内核。由于每个节点只有1个GPU,我需要确保两个执行器不在同一个节点上(同时)尝试使用GPU,并且两个任务不会同时提交给同一个执行器。 如何强制 Spark 每个节点有一个执行程序? 我尝试了以下方法: -设置:< code > $ SPARK

  • 问题内容: 我有以下查询,该查询创建了一个视图表,该视图显示了商店中最高的销售员,其他信息很少: 上面的查询将仅显示单个商店的销售数据,其原因如上所述。我的桌子上有20家商店。如何更改上面的查询,以便为我提供20家商店的销售数据(即20行)。 问题答案: 根据上一个问题的答案,如果在同一家商店中以相同的总销售额捆绑多个员工,则将退回所有此类员工。