How do you return a list of space admins through the database?

How do you return a list of space admins through the database?

2 answers

1 accepted

1 vote
Answer accepted

Possible untested improvement:

SELECT
    s.spacename AS "Space Name",
    s.spacekey  AS "Space Key",
    u.user_name AS "Admin User Name"
FROM
    cwd_user u
JOIN
    user_mapping um
ON
    u.user_name=um.username
JOIN
    cwd_membership cm
ON
    u.id=cm.child_user_id
JOIN
    cwd_group g
ON
    cm.parent_id = g.id
JOIN
    spacepermissions sp
ON
    um.user_key=sp.permusername
OR  sp.permgroupname=g.lower_group_name
JOIN
    spaces s
ON
    sp.spaceid=s.spaceid
WHERE
    sp.permtype='SETSPACEPERMISSIONS'
GROUP BY
    1,2,3
ORDER BY
    s.spacekey

I think this should result in pulling in the group memberships also. Only for 5.2.x +

Thanks! This was a great start for me... The problem I encountered was that in our DB at least (MySQL) the SPACEPERMISSIONS and SPACES table-names are capitalized. Also, I used MySQL's GROUP_CONCAT function to improve the result, getting comma-separated lists of both admin-names and admin e-mail addresses:

SELECT
    s.spacename AS "Space Name",
    s.spacekey  AS "Space Key",
    GROUP_CONCAT(DISTINCT u.display_name SEPARATOR ', ') AS "Administrator(s)",
    GROUP_CONCAT(DISTINCT u.email_address SEPARATOR ', ') AS "Administrator email address(es)"
FROM
    cwd_user u
JOIN
    user_mapping um
ON
    u.user_name=um.username
JOIN
    cwd_membership cm
ON
    u.id=cm.child_user_id
JOIN
    cwd_group g
ON
    cm.parent_id = g.id
JOIN
    SPACEPERMISSIONS sp
ON
    um.user_key=sp.permusername
OR  sp.permgroupname=g.lower_group_name
JOIN
    SPACES s
ON
    sp.spaceid=s.spaceid
WHERE
    sp.permtype='SETSPACEPERMISSIONS'
GROUP BY
    1,2
ORDER BY
    s.spacekey

0 votes

NOTE: These are for individually assigned space permissions only.

In Confluence 5.2.x+:

select s.spacename as "Space Name", 
        s.spacekey as "Space Key",
        u.user_name as "Admin User Name"
from cwd_user u
join user_mapping um
        on u.user_name=um.username
join spacepermissions sp
        on um.user_key=sp.permusername
join spaces s
        on sp.spaceid=s.spaceid
where sp.permtype='SETSPACEPERMISSIONS'
order by s.spacekey;

In Confluence 3.5 - 5.1.x:

select s.spacename as "Space Name", 
        s.spacekey as "Space Key",
        u.user_name as "Admin User Name"
from cwd_user u
join spacepermissions sp
        on u.user_name=sp.permusername
join spaces s
        on sp.spaceid=s.spaceid
where sp.permtype='SETSPACEPERMISSIONS'
order by s.spacekey;

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Mar 12, 2019 in Confluence

Confluence Admin Certification now $150 for Community Members

More and more people are building their careers with Atlassian, and we want you to be at the front of this wave! Important Dates Start the Certification Prep Course by 2 April 2019 Take your e...

1,403 views 2 13
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you