当你打算合并的外部目录服务器(Crowd 或 Jira 应用)有大量的用户到 Confluence 数据库中的时候,请使用这个选项。你需要有基本的 SQL 知识才能完成这个任务。

下面的 SQL 命令假设你使用的数据库为 MySQL 数据库。如果你使用的数据库不是 MySQL 数据库的话,你需要针对你使用的数据库对你的脚本进行一些修改后才能执行。

第 1 步. 创建备份

创建备份是在你对系统进行操作时候出现错误后恢复的唯一办法。

  1. 从 Confluence 中,你可以创建一个完整的 XML 站点备份包括所有的附件。
  2. 停止 Confluence。
  3. 将你服务器上的  Confluence home 和 安装目录中的所有文件和目录拷贝到系统的其他地方备份。
  4. 针对你的外部应用程序,重复上面的步骤。
  5. 从你的 MySQL 数据库管理工具中,为 Crowd/Jira 和 Confluence 都创建一个备份。

第 2 步. 替换 Confluence 用户管理

使用下面的 SQL 脚本备份外部应用程序中的用户和用户组到 Confluence 表中。下面的脚本是针对 MySQL 数据库设计运行的,如果你使用其他的数据库,你需要对脚本进行修改。

找到你目录使用的 ID
  1. 运行下面的脚本,然后对返回的结果数进行记录,这个 ID 将会在后面的 <Confluence Internal ID> 参数中引用。

    select id from cwd_directory where directory_name='Confluence Internal Directory';
  2. 针对用户目录关里界面,找到你希望移动的用户,用户组名字。运行下面的脚本,然后对返回的结果数进行记录,这个 ID 将会在后面的 <External Application ID> 参数中引用。
    select id from cwd_directory where directory_name='<External Directory Name>';
移动用户组到 Confluence
  1. 在你的内部目录中,外部目录的名字是相同情况是被允许的,希望找到这些名字,请运行下面的脚本:

    select distinct a.id, a.directory_id, a.group_name, d.directory_name from cwd_group a join cwd_group b on a.group_name=b.group_name join cwd_directory d on d.id=a.directory_id where a.directory_id != b.directory_id;
    1. 如果上面的脚本有返回插件结果,针对每一条记录表明的是名字出现了重复,在 Confluence 的内部目录中找到这些重复名字的 ID(<internal group id>)和外部应用(<external group id>)。运行下面的脚本:

      update cwd_group_attribute set group_id=<internal group id>, directory_id=<Confluence Internal Id> where group_id=<external group id>;
      update cwd_membership set child_group_id=<internal group id> where child_group_id=<external group id>;
      update cwd_membership set parent_id=<internal group id> where parent_id=<external group id>;
      delete from cwd_group where id=<external group id>;
  2. 移动所有外部应用中的所有组到 Confluence 内部目录中。
    update cwd_group set directory_id=<Confluence Internal ID> where directory_id=<External Application ID>;
移动用户到 Confluence
  1. 在内部目录中是允许有多个相同的用户名的,如果这些用户组在不同的外部应用目录中的话。找到这些用户,运行:

    select distinct a.id, a.directory_id, a.user_name, d.directory_name from cwd_user a join cwd_user b on a.user_name=b.user_name join cwd_directory d on d.id=a.directory_id where a.directory_id != b.directory_id;
    1. 如果上面的脚本返回了多条记录的话,表明的是你的系统中有多个用户具有相同的用户名在不同的外部目录中。在 Confluence 的内部目录中找到这些重复名字的 ID((<internal user id>)和外部应用(<external user id>)。运行下面的脚本:

      update cwd_membership set child_user_id=<internal user id> where child_user_id=<external user id>;
      update cwd_user_credential_record set user_id=<internal user id> where user_id=<external user id>;
      update cwd_user_attribute set user_id=<internal user id>, directory_id=<Confluence Internal ID> where user_id=<external user id>;
      delete from cwd_user where id=<external user id>;
  2. 移动所有外部应用中的所有用户到 Confluence 内部目录中。
    update cwd_user set directory_id=<Confluence Internal ID> where directory_id=<External Application ID>;
删除外部应用目录
  1. 你需要移动你的系统中的目录顺序,将内部用户目录移动到系统目录列表中的最顶端,然后激活它。
    1. 如果你仅仅有 2 个目录 - 内部和外部目录的删除可以用下面的脚本:

      update cwd_app_dir_mapping set list_index = 0 where directory_id = <Confluence Internal ID>;
    2. 如果你具有超过 2 个的用户目录,你需要将你的内部目录移动到顶部(list_index 0)需要删除的外部目录在这个目录的后面。
      • 列出所有用户的排序列表

        select d.id, d.directory_name, m.list_index from cwd_directory d join cwd_app_dir_mapping m on d.id=m.directory_id order by m.list_index;
      • 修改列表索引,这样这些目录将会按照你希望的顺序进行排序。用户目录的排序可以使用下面的方法进行重排序
        update cwd_app_dir_mapping set list_index = <position> where directory_id = <directory id>;
    3. 检查内部目录是否被启用。
      • 列出内部目录。一个被激活的目录将会在字段 'active' 中设置为 'T'

        select id, directory_name, active from cwd_directory where id = <Internal Directory id>;
      • 如果内部目录不是激活的,请激活它
        update cwd_directory set active = 'T' where id = <Internal Directory id>;
  2. 当所有的目录排序是正确的话,从目录列表中删除外部应用目录:
    delete from cwd_app_dir_operation where app_dir_mapping_id = (select id from cwd_app_dir_mapping where directory_id = <External Application ID>);
    delete from cwd_app_dir_mapping where directory_id = <External Application ID>;
  3. 如果被删除的外部目录在系统中与其他的表有约束的话,你需要根据这些约束从数据库中先删除其他表中的数据:
    delete from cwd_directory_attribute where directory_id=<External Application ID>;
    delete from cwd_directory_operation where directory_id=<External Application ID>;
  4. 所有引用的外部目录现在应该可以从系统中被删除了。使用下面的命令进行删除:
    delete from cwd_directory where id = <External Application ID>;
重置密码
  1. 所有在你删除的外部目录中的用户现在还不能登录系统,包括外部目录的管理员。这些用户需要先重置密码后才能登录系统。你可以通知你的用户使用登录页面的 忘记你的密码(Forgot your password)连接重置密码。可选的你可以使用Restore Passwords To Recover Admin User Rights页面的内容重置管理员的密码,然后通过管理员界面中的管理用户选项为你的用户重置密码。

https://www.cwiki.us/display/CONFLUENCEWIKI/Reverting+from+Crowd+or+JIRA+applications+to+Internal+User+Management

Confluence 6 选项 2 – 转移 Crowd/Jira 应用程序中的用户和用户组到 Confluence 数据库的更多相关文章

  1. 为用户管理连接 Confluence 6 到 Jira 应用程序

    请注意,在使用这个功能的时候,你的 Jira 应用许可证数量和 Confluence 的许可证数量不需要完全等同.例如,你可以通过 Jira 管理一个 50 个用户的 Confluence 许可证,尽 ...

  2. Atlassian 系列软件安装(Crowd+JIRA+Confluence+Bitbucket+Bamboo)

    公司使用的软件开发和协作工具为 Atlassian 系列软件,近期需要从腾讯云迁移到阿里云环境,简单记录下安装和配置过程.(Atlassian 的文档非常详尽,过程中碰见的问题都可以找到解决办法.) ...

  3. Confluence 6 选项 1 – 在 Confluence 中手动重建用户和用户组

    当你只有少量的用户和用户组的时候,使用这个方法. 使用 Confluence 的系统管理员登录 Confluence. 进入用户目录管理界面,然后移动 内部目录(internal directory) ...

  4. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4 环境都配置好以后, 开始搭建Jira的环境, 这里参考了一篇文 ...

  5. Confluence的简单安装以及与jira链接(Confluence不知道有没有破解)

    1. 前提是安装好了jira以及下载好了confluence的安装包 这里 jira的版本是 7.2.4 confluence的版本是6.8 2. 服务器上面有sqlserver数据库. 3. 为了便 ...

  6. SAP S4HANA 账户组的配置里'Int.Std.Grping'选项没勾选导致ABAP程序报错

    SAP S4HANA 账户组的配置里'Int.Std.Grping'选项没勾选导致ABAP程序报错 BP,试图创建一个新的vendor code, 角色是ZGM001, Grouping是G001, ...

  7. Confluence安装、汉化及jira整合

    今天上午装了一下Confluence,刚开始装的时候成功了,成功后进入数据库配置阶段,本人想把jira和confluence整合一起用,刚开始提示数据库连接问题,后来一直问题提示Connection ...

  8. 基于 Confluence 6 数据中心在你的 Atlassian 应用中配置 SAML 授权

    希望在 Confluence 中配置SAML: Go to  > 基本配置(General Configuration) > SAMl 授权(SAML Authentication). 选 ...

  9. JIRA安装过程中链接mysql的问题!

    测试下我使用的是mysql7.5的版本,JIRA是6.3.6!这是版本引起的问题! 服务器上原生的mysql驱动jar包:Mysql-connector-java-5.1.18-bin 可参考:htt ...

随机推荐

  1. 2018-2019-2 20165209 《网络对抗技术》 Kali安装

    2018-2019-2 20165209 <网络对抗技术> Kali安装 目录内容 下载 安装 网络 共享 软件源 下载kali kali下载官网地址 我下载的版本(如下图所示) 安装 打 ...

  2. HexDump.java解析,android 16进制转换

    HexDump.java解析android 16进制转换 package com.android.internal.util; public class HexDump { private final ...

  3. OAuth : open Authorization 开发授权

    OAuth : open Authorization 开发授权 用户访问慕课网,慕课网请求OAuth登陆页面,用户输入QQ号码和密码,这个页面的域名不属于慕课网是属于QQ的,随后把结果给慕课网,这个结 ...

  4. python之路----socketserver模块

    socketserver import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): ...

  5. python函数—形参、实参、位置参数、关键字参数

    1.通过def function_name([parameter]): 定义,函数一遇到return即结束运行.如果函数没有定义返回值,则返回None,如果定义了一个返回值,则返回该对象,如果一个re ...

  6. 【翻译】std::list::remove - C++ Reference

    公有成员函数 std::list::remove void remove(const value_type& val); 删除与给定值相等的元素 从容器中删除所有与 val 值相等的元素.li ...

  7. linux下安装evernote国际版

    一.背景 由于之前一直将笔记记录在evernote,因此现在转到linux下需要使用工具来记录笔记到evernote上 OS : Ubuntu 16.04 (xenial) 二.linux版everp ...

  8. Centos7.2 安装Elasticsearch 6

    下载 elasticsearch.6.0.0.tar.gz 迁移文件到usr/local中 mv elasticsearch-.tar.gz /usr/local/ cd /usr/local tar ...

  9. RHEL7--linux系统启动流程与故障排除

    一.Linux启动过程 MBR保存着系统的主引导程序(grub 446字节,分区表64字节),启动过程就是把内核加载到内存. 启动的顺序: 1.BIOS: 2.BIOS激活MBR: 3.MBR中的引导 ...

  10. Ubuntu 16.04设置IP、网关、DNS

    说明:在网上给的教程上面通常会有这样的一个误导思路,按照配置文件设置后会不生效的问题,甚至没有一点效果,经过排查发现Linux下设置IP这个话题的入口线索应该分为两种:1为Server版,2为Desk ...