Confluence 6 选项 2 – 转移 Crowd/Jira 应用程序中的用户和用户组到 Co

当你打算合并的外部目录服务器(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. 你需要移动你的系统中的目录顺序,将内部用户目录移动到系统目录列表中的最顶端,然后激活它。
    • 列出内部目录。一个被激活的目录将会在字段 '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>;
    • 列出所有用户的排序列表


      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>;
    1. 如果你仅仅有 2 个目录 - 内部和外部目录的删除可以用下面的脚本:


      update cwd_app_dir_mapping set list_index = 0 where directory_id = <Confluence Internal ID>;
    2. 如果你具有超过 2 个的用户目录,你需要将你的内部目录移动到顶部(list_index 0)需要删除的外部目录在这个目录的后面。
    3. 检查内部目录是否被启用。
  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

原文地址:http://blog.51cto.com/ossez/2103374

时间: 2024-08-24 15:08:52

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

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

请注意,在使用这个功能的时候,你的 Jira 应用许可证数量和 Confluence 的许可证数量不需要完全等同.例如,你可以通过 Jira 管理一个 50 个用户的 Confluence 许可证,尽管你的 Jira 软件只有 25 个用户许可证. 基于一些限制,你可以连接一系列 Atlassian 应用程序到 JIRA 应用程序中,以便于你使用 JIRA 集中管理你的用户. 什么时候使用这个功能:你可以连接一个运行 JIRA 4.3 及后续版本的服务器,JIRA 4.3 及后续版本, JIRA

Centos 6.5 安装 Atlassiana Crowd+JIRA+Confluence(Wiki)之四 Confluence篇(wiki 5.8)

安装前需要准备的软件 atlassian-confluence-5.8.10-x64.bin jdk-7u75-linux-x64.tar.gz Confluence-5.8.10-language-pack-zh_CN.jar confluence5.x-crack.zip mysql-connector-java-5.1.32-bin.jar 安装步骤 安装操作系统Centos 6.5 配置主机名与IP地址 安装JDK环境 更新时间同步 安装Confluence 主程序 更改程序的端口809

Centos 6.5 安装 Atlassiana Crowd+JIRA+Confluence(Wiki)之一 数据库篇(MySQL5.1)

软件准备 1.数据库软件 mysql 5.1 主程序 mysql clinet 连接客户端 mysql-devel 驱动程序 安装步骤 安装操作系统 配置主机名称 修改IP地址 修改系统时间 保持时间准确性 yum安装数据库 开启数据库 并作相关修改 开启防火墙相应端口 修改主机名称 vi /etc/sysconfig/network 修改HOSTNAME= 您规划的主机名 保存并推出 修改主机IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 保

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

希望在 Confluence 中配置SAML: Go to  > 基本配置(General Configuration) > SAMl 授权(SAML Authentication). 选择 SAML 单点登录(SAML single sign-on). 配置下面的设置: Single sign-on issuer 这个值是是由你 IdP 提供的,作为设置 SAML 的一部分.有时候这个被称为 'Entity ID' 发布者是将会接受授权请求表单的 IdP 应用. Identity provi

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

测试下我使用的是mysql7.5的版本,JIRA是6.3.6!这是版本引起的问题! 服务器上原生的mysql驱动jar包:Mysql-connector-java-5.1.18-bin 可参考:https://jira.atlassian.com/browse/JRA-40198 更换mysql驱动包https://github.com/yurii-github/mysql-connector-j/blob/release/5.1/mysql-connector-java-5.1.38-SNAP

destoon程序中qq号码,手机号,msn必选项实现方法

最近发现好多客户,信息不完全!还是把qq号码,手机号,msn设为必选项比较好!下面以把qq设为必选项为例找到模板 template/default/member/edit.htm 找到 function Dcheck() { if($('truename').value == '') {Tab(0);Dmsg('请填写真实姓名', 'truename');return false;} if($('password').value != '') {if($('cpassword').value =

Tungsten Fabric架构解析丨vRouter的部署选项

Hi!这里是Tungsten Fabric架构解析内容的第五篇,介绍vRouter的部署选项. Tungsten Fabric架构解析系列文章,由TF中文社区为你呈现,旨在帮助初入TF社区的朋友答疑解惑.我们将系统介绍TF有哪些特点.如何运作.如何收集/分析/部署.如何编排.如何连接到物理网络等话题. vRouter有多种部署选项,可提供不同的好处和易用性: Kernel Module(内核模块)--默认部署模式 DPDK--使用英特尔库提供转发加速 SR-IOV--提供从VM直接访问NIC S

【Android】15.3 Notification基础知识

分类:C#.Android.VS2015: 创建日期:2016-02-29 一.如何向用户发出通知 1.使用Toast通知用户 前台任务中的通知(Notifications)一般用于长时间显示用户正在关注的服务的消息.但有时候,我们可能只希望将最终结果短暂地显示出来,比如告诉用户文件已下载完毕等,此时可以用Toast告诉用户. 由于服务是在后台运行的,所以可以在服务中用Handler来实现Toast的显示.例如: var myHandler = new Handler (); ... myHan

如何将云存储与工作流程整合?

由于云存储的出现,我们的文件不再局限于电脑的硬盘驱动器中.现在,我们 可以在笔记本电脑.平板电脑.智能手机,甚至是便携式迷你电脑上完成工作.尽管如此,很多用户仍然没有完全将云计算整合到其日常工作中.下面让我们看看如 何无缝地将云计算整合到人们的工作流程中,我们将从最关键的部分开始:选择与自身的存储介质最为匹配的云服务. 云存储服务 云存储服务多种多样,市场上有很多潜在的解决方案可供选择,并且每天都有新的服务进入云存储市场.在这些服务中,有些服务非常值得选择,可以帮助我们像是用硬盘一样简单地使用云