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

お困りですか?

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

コミュニティに質問

目的

An administrator may need to rename a Confluence group to reflect changes their organisation undergoes. This is currently not possible to do in Confluence, but a feature request is under consideration: CONFSERVER-9159 - Getting issue details... STATUS

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


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


ソリューション

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

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

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

グローバル権限
SELECT permgroupname AS groupname,
permtype AS "permission_type (global)"
FROM spacepermissions
WHERE spaceid IS NULL
AND permgroupname in ('<group_name>')
ORDER BY permgroupname,
permtype;
スペース権限
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;
ページ制限
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. 権限レベルに応じて権限を編集する

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

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

グローバル権限の更新
UPDATE spacepermissions
SET permgroupname = 'NEW_GROUP_NAME'
WHERE permgroupname IN ('OLD_GROUP_NAME')
AND spaceid IS NULL;
スペース権限の更新 - すべてのスペース
UPDATE spacepermissions
SET permgroupname = 'NEW_GROUP_NAME'
WHERE permgroupname IN ('OLD_GROUP_NAME')
AND spaceid IS NOT NULL;
スペース権限の更新 - 特定のスペース
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>'));
ページ制限の更新
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 を再起動してキャッシュをフラッシュする

データベースの変更が完了したら、Confluence を再起動し、Confluence の内部キャッシュ[全般設定] > [キャッシュ管理] > [すべてフラッシュ] (ページ下部) でフラッシュします。


最終更新日 2018 年 11 月 2 日

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

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