方案:如何列出 Jira 中授予用户的所有权限

这篇具有很好参考价值的文章主要介绍了方案:如何列出 Jira 中授予用户的所有权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

为了进行故障排除或某些管理任务,我们可能想知道给定用户拥有的所有权限。

Jira 通过其 UI 提供权限助手和类似工具,但对于所有权限的列表,我们只能通过作为用户本身进行身份验证的 REST API 请求或通过数据库来获取它。

解决方案

此处提供的两个解决方案都包含嵌套组(假设在实例中配置了支持嵌套组)

REST API

当前用户本身,或者通过 Switch User 类似功能,模拟用户。然后在浏览器中打开此 URL

https://Jira-base-URL/rest/api/2/mypermissions

数据库

POSTGRES、MYSQL 和 MSSQL

WITH RECURSIVE nested AS
(
  select m.* from cwd_membership m where m.membership_type = 'GROUP_USER'
  and m.lower_child_name = 'charlie'
  UNION ALL
  select m.* from cwd_membership m
  join nested on m.lower_child_name = nested.lower_parent_name
  where m.membership_type = 'GROUP_GROUP'
),
uperm AS
(
  select distinct 'User' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", u.lower_user_name as "Source"
  from nested n
  join cwd_user u on u.lower_user_name = n.lower_child_name
  join app_user a on a.lower_user_name = u.lower_user_name
  join schemepermissions sp on sp.perm_type = 'user' and sp.perm_parameter = a.user_key
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
  where n.membership_type = 'GROUP_USER'
),
gperm AS
(
  select distinct 'Group' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", sp.perm_parameter as "Source"
  from nested n
  join schemepermissions sp on sp.perm_type = 'group' and sp.perm_parameter = n.lower_parent_name
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
),
projrole AS
(
  select distinct 'Role' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", concat('Role "', concat(pr.name, concat('": ', pra.roletypeparameter))) as "Source"
  from nested n
  join projectroleactor pra 
    on ((pra.roletype = 'atlassian-group-role-actor' and lower(pra.roletypeparameter) = n.lower_parent_name) 
    or (pra.roletype = 'atlassian-user-role-actor' and lower(pra.roletypeparameter) = n.lower_child_name))
  join projectrole pr on pr.id = pra.projectroleid
  join schemepermissions sp on sp.perm_type = 'projectrole' and sp.perm_parameter = concat(pr.id, '')
  join project p on p.id = pra.pid
),
approle AS
(
  select distinct 'License' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", l.group_id as "Source"
  from nested n
  join licenserolesgroup l on lower(l.group_id) = n.lower_parent_name
  join schemepermissions sp on sp.perm_type = 'applicationRole'
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
),
globalperm AS
(
  select distinct 'Global' as "Type", gp.permission as "Permission", null as "Project Key", null as "Source"
  from globalpermissionentry gp 
  join nested on gp.group_id = nested.lower_parent_name
),
permissions AS 
(
select * from uperm
UNION
select * from gperm
UNION
select * from globalperm
UNION
select * from projrole
UNION
select * from approle
)
select "Project Key", "Permission", "Type", "Source" from permissions
-- where ("Project Key" in ('S1', 'S2', 'S3') or "Project Key" is null)
order by "Project Key" asc, "Permission" asc;

ORACLE

WITH nested AS
(
SELECT m.* FROM cwd_membership m
START WITH m.membership_type = 'GROUP_USER' AND m.lower_child_name = 'charlie'
  CONNECT BY PRIOR m.lower_parent_name = m.lower_child_name AND m.membership_type = 'GROUP_GROUP'
),
uperm AS
(
  select distinct 'User' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", u.lower_user_name as "Source"
  from nested n
  join cwd_user u on u.lower_user_name = n.lower_child_name
  join app_user a on a.lower_user_name = u.lower_user_name
  join schemepermissions sp on sp.perm_type = 'user' and sp.perm_parameter = a.user_key
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
  where n.membership_type = 'GROUP_USER'
),
gperm AS
(
  select distinct 'Group' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", sp.perm_parameter as "Source"
  from nested n
  join schemepermissions sp on sp.perm_type = 'group' and sp.perm_parameter = n.lower_parent_name
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
),
projrole AS
(
  select distinct 'Role' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", concat('Role "', concat(pr.name, concat('": ', pra.roletypeparameter))) as "Source"
  from nested n
  join projectroleactor pra 
    on ((pra.roletype = 'atlassian-group-role-actor' and lower(pra.roletypeparameter) = n.lower_parent_name) 
    or (pra.roletype = 'atlassian-user-role-actor' and lower(pra.roletypeparameter) = n.lower_child_name))
  join projectrole pr on pr.id = pra.projectroleid
  join schemepermissions sp on sp.perm_type = 'projectrole' and sp.perm_parameter = concat(pr.id, '')
  join project p on p.id = pra.pid
),
approle AS
(
  select distinct 'License' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", l.group_id as "Source"
  from nested n
  join licenserolesgroup l on lower(l.group_id) = n.lower_parent_name
  join schemepermissions sp on sp.perm_type = 'applicationRole'
  join permissionscheme s on s.id = sp.scheme
  join nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'
  join project p on p.id = na.source_node_id
),
globalperm AS
(
  select distinct 'Global' as "Type", gp.permission as "Permission", null as "Project Key", null as "Source"
  from globalpermissionentry gp 
  join nested on gp.group_id = nested.lower_parent_name
),
permissions AS 
(
select * from uperm
UNION
select * from gperm
UNION
select * from globalperm
UNION
select * from projrole
UNION
select * from approle
)
select "Project Key", "Permission", "Type", "Source" from permissions
-- where ("Project Key" in ('S1', 'S2', 'S3') or "Project Key" is null)
order by "Project Key" asc, "Permission" asc;

我们可以根据需要更改第 4 行的用户名,并过滤生成的项目(在从底部开始的第二行)。

输出样例文章来源地址https://www.toymoban.com/news/detail-808712.html

Project Key |              Permission              |  Type   |       Source        
-------------+--------------------------------------+---------+---------------------
 S1          | ADD_COMMENTS                         | License | jira-software-users
 S1          | ASSIGNABLE_USER                      | License | jira-software-users
 S1          | ASSIGNABLE_USER                      | User    | charlie
 S1          | ASSIGN_ISSUES                        | License | jira-software-users
 S1          | BROWSE_PROJECTS                      | License | jira-software-users
 S1          | BROWSE_PROJECTS                      | Group   | group-c
 S1          | CLOSE_ISSUES                         | License | jira-software-users

到了这里,关于方案:如何列出 Jira 中授予用户的所有权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql添加用户授予root权限和ssl连接

    mysql添加用户,授予root权限 CREATE USER \\\'lddTest1\\\'@\\\'%\\\' IDENTIFIED BY \\\'ldd234\\\'; grant all privileges on *.* to \\\'baihu\\\'@\\\'%\\\' with grant option flush privileges; 修改用户名 update user set user=\\\'test\\\' where user=‘root’; FLUSH PRIVILEGES; 删除用户 drop user \\\'test1\\\'@\\\'localhost\\\'; 开启mysql 的ssl连接 show variables like \\\'%ssl%\\\'; SELECT ssl

    2024年02月01日
    浏览(57)
  • (Linux)在Ubuntu系统中添加新用户并授予root权限

    向Ubuntu系统中添加新用户并为其授予root权限的步骤如下: 打开终端Terminal 输入命令: sudo su - 以 root 身份登录. 注: sudo su : 切换root身份, 不携带当前用户环境变量 sudo su - : 切换root身份, 携带当前用户环境变量 输入命令: adduser username 向Ubuntu系统中添加新用户. 输入命令: passwd us

    2024年02月16日
    浏览(53)
  • 如何开通 API 服务并授予项目 API 服务的调用权限

    涂鸦 IoT 开发平台开放多种业务 API 服务,全面覆盖全屋智能管理、行业通用设备用户管理、垂直品类开放能力、各类数据服务等业务需求。 本文将为大家介绍如何开通 API 服务并授予项目 API 服务的调用权限。 开发者调用的部分  云服务 API  会获取用户个人隐私数据,因此

    2024年01月15日
    浏览(38)
  • Mysql创建用户并且给指定用户添加某个库的所有权限

    运行以下命令首先运行的用户需要有以下操作权限才可以执行 创建用户:命令中的’username’替换为您要创建的用户名,‘host’替换为用户的主机名或IP地址如果都可以访问则配置’%\\\',\\\'password’替换为用户的密码 创建用户 ‘it’ 并且设置任何ip都可访问密码设置123456 创建

    2024年02月11日
    浏览(50)
  • 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT SERVICE\SQLSERVERAGENT授予针对 CL...

    很久以前发现我们的业务服务器上出现一个System的系统严重错误,查找很久都没有找到解决办法,今日再次查看服务器发现报错更频繁,于是就搜集各种资料进行查找解决办法,终于找到了一个解决办法。 错误截图介绍 如下: 日期 2020-11-23 00:00:00 日志 Windows NT (System) 源 Mi

    2024年02月12日
    浏览(34)
  • Android12 授予APK默认权限

    不同于以往的Android版本 可以直接在此处设置: Android/frameworks/base/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java  授予权限类型参考下表:  比如 为DemoAPK添加定位通话以及访问内存权限.

    2024年01月21日
    浏览(51)
  • Postgresql源码(114)视图权限授予逻辑

    被授权的对象在系统表中记录授权信息,例如pg_namespace中的nspacl列: pusr1=UC/mingjie的含义: mingjie是赋予者 pusr1是被赋予者 UC是权限,表示USAGE和CREATE 有时会遇到下面场景,访问一个视图没有权限: 结果 查看namespace视图: 这种情况下,添加两种权限都可以访问函数: 这里我

    2024年02月07日
    浏览(41)
  • 用户权限解决方案

    三级目录 租户管理员是SaaS多租户平台模板系统的最高管理者,其权限需求如下: 创建和管理租户账号。 创建并分配子账户和子管理员权限。 管理和控制租户下的所有应用、数据和资源。 负责维护和保护租户的数据安全。 设置和更新用户角色和权限。 配置和管理系统信息

    2024年02月07日
    浏览(32)
  • 高通Android 12/13 默认应用程序授予权限

    1、一提到权限很多Android开发者都会想到 比如拨打电话 读取手机通讯录 定位 这些都是需要申请权限,Google Android 6.0之后(sdk 23) 需要app动态申请权限 或者权限组 2、我这里打个比方 比如需要在fm应用 默认打开mic权限  3、我们需要知道这个默认应用程序的包名 (例如 xxx.

    2024年02月01日
    浏览(57)
  • [数据库]MYSQL之授予/查验binlog权限

    在后端做MySQL主从备份;亦或是在大数据领域中,各类CDC同步( Canal / Flink CDC 等),均会基于 MYSQL 的 binlog 来实现。 因此,知道需要哪些权限?怎么去查验、怎么授权就很重要了。 感觉网上的文章没成体系地清楚,而今天工作上处理问题的过程中遇到了此疑问,且曾多次对

    2024年02月01日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包