権限を保持したままグループ名を変更する方法

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

目的

組織での変更を反映するために、Confluence のグループ名の変更が必要な場合があります。現在、これを Confluence で実行することはできませんが、次の機能リクエストが登録されていまsす。 CONFSERVER-9159 - Getting issue details... STATUS

ただし、データベース経由での操作を行うことで、グループ名と関連するすべての権限を変更することができます。


このような操作は、Confluence の機能として意図されたものではないことにご注意ください。このため、このプロセスはアトラシアンのサポート範囲には含まれず、このページの情報はそのままの形で提供されます。本番インスタンスに変更を適用する前に、開発またはステージング環境で十分なテストを行う必要があります。


ソリューション

1. 対象のグループに付与された権限を確認する

Confluence の権限アーキテクチャにあるように、Confluence では権限をサイト、スペース、およびページレベルの制限として認識します。このため、対象のグループを編集する前に、そのグループの使用状況を確認する必要があります。

Confluence データベースで次の SQL を実行します。<group_name> を小文字のグループ名で置き換えます。

グローバル権限
--Postgres
SELECT permgroupname AS groupname,
permtype AS "permission_type (global)"
FROM spacepermissions
WHERE spaceid IS NULL
AND permgroupname in ('<group_name>')
ORDER BY permgroupname,
permtype;


--MSSQL
SELECT PERMGROUPNAME AS groupname,
PERMTYPE AS "permission_type (global)"
FROM SPACEPERMISSIONS
WHERE SPACEID IS NULL
AND PERMGROUPNAME in ('<group_name>')
ORDER BY PERMGROUPNAME,
PERMTYPE;
スペース権限
--Postgres
SELECT permgroupname AS groupname,
s.spacename,
permtype AS "permission_type (space)"
FROM spacepermissions sp
JOIN spaces s ON sp.spaceid = s.spaceid
WHERE permgroupname in ('<group_name>')
ORDER BY permgroupname,
s.spacename,
permtype;


--MSSQL
SELECT PERMGROUPNAME AS groupname,
s.SPACENAME,
PERMTYPE AS "permission_type (space)"
FROM SPACEPERMISSIONS sp
JOIN SPACES s ON sp.SPACEID = s.SPACEID
WHERE PERMGROUPNAME in ('<group_name>')
ORDER BY PERMGROUPNAME,
s.SPACENAME,
PERMTYPE;
ページ制限
--Postgres
SELECT cp.groupname,
content.title AS content_title,
cp.cp_type AS "permission_type (page)"
FROM content_perm cp
JOIN content_perm_set cps ON cp.cps_id = cps.id
JOIN content ON content.contentid = cps.content_id
WHERE cp.groupname in ('<group_name>')
ORDER BY cp.groupname,
content.title,
cp.cp_type;


--MSSQL
SELECT cp.GROUPNAME,
CONTENT.TITLE AS content_title,
cp.CP_TYPE AS "permission_type (page)"
FROM CONTENT_PERM cp
JOIN CONTENT_PERM_SET cps ON cp.CPS_ID = cps.ID
JOIN CONTENT ON CONTENT.CONTENTID = cps.CONTENT_ID
WHERE cp.GROUPNAME in ('<group_name>')
ORDER BY cp.GROUPNAME,
CONTENT.TITLE,
cp.CP_TYPE;

2. 権限レベルに応じて権限を編集する

ページレベルの制限のみを残したい場合や、対象のグループにグローバル権限のみが適用されているような場合が考えられます。

状況に応じ、次のクエリを実行します。

グローバル権限の更新
--Postgres
UPDATE spacepermissions
SET permgroupname = 'NEW_GROUP_NAME'
WHERE permgroupname IN ('OLD_GROUP_NAME')
AND spaceid IS NULL;


--MSSQL
UPDATE SPACEPERMISSIONS
SET PERMGROUPNAME = 'NEW_GROUP_NAME'
WHERE PERMGROUPNAME IN ('OLD_GROUP_NAME')
AND SPACEID IS NULL;
スペース権限の更新 - すべてのスペース
--Postgres
UPDATE spacepermissions
SET permgroupname = 'NEW_GROUP_NAME'
WHERE permgroupname IN ('OLD_GROUP_NAME')
AND spaceid IS NOT NULL;


--MSSQL
UPDATE SPACEPERMISSIONS
SET PERMGROUPNAME = 'NEW_GROUP_NAME'
WHERE PERMGROUPNAME IN ('OLD_GROUP_NAME')
AND SPACEID IS NOT NULL;
スペース権限の更新 - 特定のスペース
--Postgres
UPDATE spacepermissions
SET permgroupname = 'NEW_GROUP_NAME'
WHERE permgroupname IN ('OLD_GROUP_NAME')
AND spaceid IN
(SELECT spaceid
FROM spaces
WHERE spacename IN ('<SPACE_NAME_1>',
'<SPACE_NAME_2>',
'<SPACE_NAME_n>'));


--MSSQL
UPDATE SPACEPERMISSIONS
SET PERMGROUPNAME = 'NEW_GROUP_NAME'
WHERE PERMGROUPNAME IN ('OLD_GROUP_NAME')
AND SPACEID IN
(SELECT SPACEID
FROM SPACES
WHERE SPACENAME IN ('<SPACE_NAME_1>',
'<SPACE_NAME_2>',
'<SPACE_NAME_n>'));
ページ制限の更新
--Postgres
UPDATE content_perm
SET groupname = 'NEW_GROUP_NAME'
WHERE groupname IN ('OLD_GROUP_NAME');


--MSSQL
UPDATE CONTENT_PERM
SET GROUPNAME = 'NEW_GROUP_NAME'
WHERE GROUPNAME IN ('OLD_GROUP_NAME');

3. グループ名の変更

Confluence を異なるディレクトリにリンクする予定で、現在のグループ A の権限をグループ B (新しいディレクトリから同期するグループ) に移行したい場合、このステップはスキップしてください。

グループが Confluence の内部ディレクトリにある場合
UPDATE cwd_group
SET group_name = 'NEW_GROUP_NAME',
lower_group_name = 'NEW_GROUP_NAME'
WHERE group_name = 'OLD_GROUP_NAME';


その他の場合、対象のターゲットをホストしている外部ディレクトリ (例: Jira、Active Directory) でグループを更新します。

4. Confluence を再起動してキャッシュをフラッシュする

After adjusting the database, restart Confluence and clear Confluence's internal caches at General Configuration > Cache Management > Flush All (at the bottom).


Last modified on Mar 21, 2024

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.