反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

同步用户

  • 文档创建者:文档助手1
  • 历史版本:92
  • 最近更新:Carly 于 2023-03-16
  • 1. 概述

    1.1 版本

    报表服务器版本JAR功能变动
    10.0--
    10.0
    2019-12-05「邮箱」支持包含符号#和&
    10.02020-06-08

    新增用户可编辑选项,勾选后,同步状态下用户信息可编辑

    勾选后,同步用户可编辑姓名、密码、手机、邮箱,可使用 忘记密码 功能。已存在用户的以上字段在定期同步时将不再更新

    详情请参见本文 4.2 节

    10.0.10-支持多源用户,在添加/导入用户存在状态下可「同步用户」,平台多种类型用户可并存
    10.0.11-定时同步频率支持使用表达式
    10.0.12-

    支持使用「文件数据集」同步用户

    用户手机号支持绑定中国大陆、中国台湾、中国香港、土耳其、韩国、日本、新加坡、马来西亚手机号

    10.0.14-

    5.3节,支持清空同步数据

    同步用户时,支持仅配置部门,不配置职务

    10.0.17-第6章,新增「同步失败提醒」
    10.0.18-5.4节,新增「异常数据中断同步」
    10.0.192021-10-144.3节,「服务器数据集」配置更名为「用户来源」

    1.2 应用场景

    一个企业的职工人数是相当多的,并且由于人员的流动性,用户信息一直在变化,如果每次都通过手动添加修改,工作量将会非常大。

    FineReport 用户同步数据集功能可以实现动态更新平台中的用户信息,使之随着数据库中的用户信息一起变化。

    1.3 功能简介

    管理员可以先创建服务器数据集,设置定期从数据集同步用户,保持用户信息及时更新。

    1.4 注意事项

    1)若设置了同步用户,请勿轻易取消同步/调整同步数据源。因为角色用户中间关系数据不会软删除,且无法恢复!!!

    2)同步用户时一些注意事项及报错请参见:用户同步时报错整理

    2. 准备用户数据

    同步的用户数据来自服务器数据集,支持用户部门有层级和无层级两种。

    用户可根据自身用户结构选择其中一种。

    2.1 部门职务间无层级结构-SQL 数据集

    本节示例所用的用户信息表部门职务间无层级结构,如下图所示:

    image.png

    2.1.1 准备用户信息表

    准备一张用户信息表,表结构如下图所示:

    点击下载用户信息表:导入用户1.xlsx

    注1:导入用户时,用户名、姓名、密码为必填项,此外内容可以不填。

    注2:10.0.12 之前的报表工程版本,仅支持绑定中国大陆手机号,手机号无需加区号

             10.0.12 及之后的报表工程版本,用户手机号支持绑定中国大陆、中国台湾、中国香港、土耳其、韩国、日本、新加坡、马来西亚手机号

             中国大陆手机号可自行选择是否加区号,其他地区手机号需要加区号。

    image.png

    2.1.2 创建服务器数据集

    使用 Navicat 等第三方工具,将上表导入数据库,并建立系统与该数据库的 数据连接 。下文将以 FRDemo 数据库为例。

    管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「SQL数据集」。如下图所示:

    image.png

    设置数据集名称为「同步用户1」,数据连接选择「FRDemo」,SQL 语句为:

    select * from 导入用户1

    image.png

    2.2 部门职务间无层级结构-文件数据集

    注:10.0.12 及之后的报表工程,支持通过「文件数据集」同步用户。

    本节示例所用的用户信息表部门职务间无层级结构。同步的用户的部门都是并列在「所有部门」下,如下图所示:

    image.png

    2.2.1 准备用户信息表

    准备一张用户信息表,表结构如下图所示:

    点击下载用户信息表:导入用户1.xlsx

    注1:导入用户时,用户名、姓名、密码为必填项,此外内容可以不填。

    注2:10.0.12 之前的报表工程版本,仅支持绑定中国大陆手机号,手机号无需加区号

             10.0.12 及之后的报表工程版本,用户手机号支持绑定中国大陆、中国台湾、中国香港、土耳其、韩国、日本、新加坡、马来西亚手机号

             中国大陆手机号可自行选择是否加区号,其他地区手机号需要加区号。

    注3:也可使用 TXT / XML 文件,设置方式请参见:文件数据集 。

    image.png

    2.2.2 创建服务器数据集

    将该表保存在本地,或者上传至报表工程的%FR_HOME%\webapps\webroot\WEB-INF\reportlets目录下。

    管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「文件数据集」。如下图所示:

    image.png

    设置数据集名称为「同步用户-文件」,选择上文准备的表格。

    注1:若选择服务器文件,则选择报表工程的 %FR_HOME%\webapps\webroot\WEB-INF\reportlets 目录下的文件。

            若选择本地文件,上传后文件自动保存至报表工程的 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\excel 目录下。

    注2:也可使用 TXT / XML / 远程 URL 文件,支持数据集参数,设置方式请参见:文件数据集 。

    image.png

    2.3 部门职务间有层级结构-树数据集

    本节示例所用的用户信息表部门职务间有层级结构,如下图所示:

    image.png

    2.3.1 准备用户信息表

    准备一张用户信息表,表结构如下图所示:

    点击下载用户信息表:部门职务间有层级结构.xls

    注1:同步用户数据集时,若服务器数据集为树数据集 ,顶层机构的父机构应为Null(而非空值)。如下图所示的 Anna 用户,fid 字段为空。

    注2:10.0.12 之前的报表工程版本,仅支持绑定中国大陆手机号,手机号无需加区号

             10.0.12 及之后的报表工程版本,用户手机号支持绑定中国大陆、中国台湾、中国香港、土耳其、韩国、日本、新加坡、马来西亚手机号

             中国大陆手机号可自行选择是否加区号,其他地区手机号需要加区号。

    14.png

    2.3.2 创建SQL数据集

    使用 Navicat 等第三方工具,将上表导入数据库,并建立系统与该数据库的 数据连接 。下文将以 FRDemo 数据库为例。

    管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「SQL数据集」。如下图所示:

    image.png

    设置数据集名称为「同步用户2」,数据连接选择「FRDemo」,SQL 语句为:

    select * from 部门职务间有层级结构

    image.png

    2.3.3 创建树数据集

    管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「树数据集」。如下图所示:

    image.png

    设置数据集名称为「同步用户-有层级」,构建自数据集「同步用户2」,原始标记字段为「did」,父标记字段为「fid」,如下图所示:

    注:同步用户树数据集,仅支持依赖所选数据集的父标记字段构建树,不支持依赖所选数据集的标记字段的长度构建树。

    image.png

    3. 首次同步用户更新设置

    注1:本章是针对「之前从未进行过同步用户」、「同步用户未开启状态下执行首次同步操作」的数据更新规则。

            若之前同步过用户,在同步用户开启状态下执行非首次同步操作将不会出现此节提示弹窗,也不会按照此节中更新规则进行同步。

    注2:JAR 包版本在 2020-11-02 之前的工程,同步的用户与「手动添加/导入的用户」不可并存。

            JAR 包版本在 2020-11-02 及之后的工程,同步的用户与「手动添加/导入的用户」可并存。

    3.1 JAR 包版本在 2020-11-02 之前

    管理员登录数据决策系统,点击「管理系统>用户管理>所有用户」,点击「同步用户」。

    跳出「用户更新设置」提示框,如下图所示:

    2020-10-28_15-46-53.png

    不同选择对应的更新逻辑如下:


    选择
    定义
    仅更新现有用户基本信息,不改变权限等设置

    如果现有用户不在同步的服务器数据集中,该用户会被删除

    如果现有用户在服务器数据集中(用户名相同):

    • 该用户的用户名不变,权限保留

    • 该用户的姓名、密码、手机、邮箱、部门、角色覆盖更新

    • 服务器数据集中不存在的部门会被删除

    清空现有用户信息及权限等设置,重新写入

    平台现有「手动添加/导入的用户」的用户名、姓名、密码、手机、邮箱、部门、职务、角色、权限均被删除,重新同步用户

    服务器数据集中不存在、平台现有的角色仍然保留

    注:根据选择的更新逻辑,首次同步后有部分用户信息被更新。

          之后能被自动更新的只有已变为同步类型的用户。

          之后的同步,数据集不能再覆盖更新内置数据,否则将冲突报错。

    3.2 JAR 包版本在 2020-11-02 及之后

    管理员登录数据决策系统,点击「管理系统>用户管理>所有用户」,点击「同步用户」。

    跳出提示框「是否保留现有非同步数据,包括导入/添加的用户、部门职务、角色」,如下图所示:

    image.png

    不同选择对应的更新逻辑如下:


    选择
    定义
    保留

    如果现有用户不在同步的服务器数据集中,该用户信息和权限将被保留,不修改

    如果现有用户在服务器数据集中(用户名相同):

    • 该用户的用户名不变,权限保留

    • 该用户的姓名、密码、手机、邮箱覆盖更新

    • 该用户当前所属的部门职务、角色若存在于同步服务器集中,则覆盖更新

    • 该用户当前所属的部门职务、角色若不存在于同步服务器集中,则保留不变

    清空

    平台现有「手动添加/导入的用户」的用户名、姓名、密码、手机、邮箱、部门、职务、角色、权限均被删除,重新同步用户

    注:根据选择的更新逻辑,首次同步后有部分用户信息被更新。

          之后能被自动更新的只有已变为同步类型的用户。

          之后的同步,数据集不能再覆盖更新内置数据,否则将冲突报错。

    4. 配置同步用户

    配置同步数据集信息,如下图所示:

    4.1 同步频率

    • 版本在 10.0.11 之前的工程,支持简单重复执行同步用户操作。

    • 版本在 10.0.11 及之后的工程,支持通过两种方式执行同步用户操作:简单重复执行、表达式设置。

    4.1.1 简单重复执行

    image.png

    从服务器数据集中自动同步用户的间隔时间,默认为 43200 秒。

    同步用户设置了同步频率,可自动进行多次同步,到达设定频率后自动进行同步,不断把服务器数据集中变化的数据同步到平台。

    注:同步频率不宜过高,否则会导致后台日志不断刷新,日志体积无限膨胀。

    4.1.2 表达式设置

    image.png

    支持通过 Cron 表达式设置任务执行的时间点,该任务可以是每天重复执行,隔日重复执行或者是单次执行等等各种不同组合的触发时间点。

    Cron 表达式的语法和写法请参见:Cron 表达式

    4.2 用户可编辑

    2020-06-08 及之后的 JAR 新增「用户可编辑」按钮,该按钮默认不勾选,勾选后,同步状态下用户信息可编辑。

    用户可编辑姓名、密码、手机、邮箱,可使用 忘记密码 功能,已存在用户的以上字段在自动同步/手动同步时将不再更新。具体功能如下表所示:

    注1:JAR 包版本在 2020-06-08 到 2020-11-02 之间的系统,用户同步后,除 忘记密码功能 可使用外,密码策略功能 对同步用户不生效。

           JAR 包版本在 2020-11-02 及之后的系统,密码策略功能 对同步用户生效。

    注2:若未勾选「用户可编辑」按钮,但使用「忘记密码」功能,在修改密码时会出现提示:您的账号无法修改密码,如有疑问请联系管理员。

    用户身份说明
    超级管理员

    1)再次同步时,平台现存用户的姓名、密码、手机、邮箱字段将不再更新

    2)可编辑平台现存用户的姓名、手机、邮箱、密码,不可编辑角色

    3)超管可在「账号设置」处编辑姓名、密码、手机、邮箱

    4)可在登录页使用 忘记密码 功能

    次级管理员

    1)可修改有权限用户的姓名、手机、邮箱、密码,不可编辑角色

    2)可在登录页使用 忘记密码 功能

    3)次管可在「账号设置」处编辑姓名、密码、手机、邮箱

    普通用户

    1)同步用户可在「账号设置」处编辑姓名、密码、手机、邮箱

    2)可在登录页使用 忘记密码 功能

    4.3 用户来源

    选择用户信息对应的来源。

    1)服务器数据集

    同步用户的来源可以是当前同步的这个服务器数据集,不支持从多个服务器数据集中同时同步。切换服务器数据集后,清空之前同步信息。

    同步成功后,不支持修改同步用户所属同步部门职务、同步角色信息,只能在服务器数据集中修改。

    2)从LDAP服务器中同步

    若同步用户的认证方式选择了「LDAP 认证」,通过安装「同步LDAP域用户」插件,在进行同步用户设置的时候,可以直接选择「从LDAP服务器中同步」。

    详情请参见:同步LDAP域用户

    4.4 用户重复验证字段

    「重复验证字段」包含两种验证方式:名称和 ID 。

    1)用户信息保存位置

    注:用户信息保存在 FineDB 数据库的表 中。

    字段信息所在表
    用户名、用户IDfine_user
    职务名称、职务IDfine_post
    部门名称、部门IDfine_department
    角色名称、角色IDfine_custom_role

    2)具体说明

    重复验证字段逻辑场景备注
    用户名若选择名称,则同步「名称」字段,所在表中的 ID 字段值将由系统随机生成

    如果修改数据集中某用户的用户名,平台中用户名也会跟着修改,所对应用户 ID 由系统随机生成,新用户名的用户会丢失之前单独为该用户配置的权限。同理,部门,职位,角色则会丢失继承自部门/职务/角色的权限

    若重复验证字段选择职务名称,那么数据源中名称相同但 ID 不同的职务会作为一个职务看待,若同一部门下有两个名称为「财务」的不同职务,会直接显示为同一个职务,其下用户也会合并显示

    但如果两个「财务」属于不同部门,则虽算作一个职务,但因部门-职务关系的不同,其下用户不会合并在一起显示。用户,部门,角色同理

    部门名称
    职务名称
    角色名称
    用户ID

    若选择 ID,则同步「ID+名称」字段,所在表中的 ID 字段值为同步用户时服务器数据集中的 ID

    如果数据集中某 ID 对应的用户名发生修改,平台中用户名也会跟着修改,权限也会被继承。部门,职位,角色同理

    非树数据集中,若重复验证字段选择 ID ,那么职务的 ID 、名称都必须是一对一且唯一不重复的关系,同一 ID 对应多个名称 、同一名称对应多个 ID 都不允许。用户,部门,角色同理

    树数据集中,用户、职务、角色的名称与 ID 必须是一对一且唯一不重复的关系

    注:前台看不到职务ID,只通过职务名称来区分、配置权限等。如果出现同一部门下两个不同id职务同名的情况,将无法区分和配置权限。故直接要求两者都必须唯一 且 一一对应的关系,不满足则直接同步失败

    部门ID
    职务ID
    角色ID

    4.5 字段名称

    用户名、姓名、密码、部门名称、职务名称、角色名称、手机、邮箱为对应服务器数据集中的字段名称。

    注1:2019-12-05 及之后的 JAR ,邮箱支持包含符号‘#’和‘&’。

    注2:10.0.14 版本及之后的报表工程,支持仅配置部门,不配置职务。

             10.0.14 版本之前的报表工程,配置了部门,必须配置职务。

    4.6 加密方式

    有两种加密方式,「内置 SHA 加密」和「自定义密码加密」。

    1)内置 SHA 加密

    适用场景:同步的服务器数据集中的密码为明文时,选择内置 SHA 加密

    加密简介:数据决策系统采用 SHA256 加密方式,以保证密码安全。用户通过接口自定义修改密码后,会自动进行 SHA256 加密。

    登录密码:登录密码即为本文 2.1 节用户信息表中的密码,非 fine_user用户表 中加密的密码。

    2)自定义密码加密

    适用场景:同步的服务器数据集中的密码为自定义加密后的密文,则必须使用自定义加密。

    加密简介:自定义密码加密,即自定义一个密码加密类。

                     加密方式在类中描述,并保存在%BI_Home%\webapps\webroot\WEB-INF\classes文件夹中。

                     数据决策系统会在用户自定义加密算法的基础上再进行 SHA256 二次加密,以保证密码安全。

    登录密码:登录密码为服务器数据集的密文解密之后的明文

    注1:自定义加密示例详情参见:同步用户密码加密设置 。

    注2:自定义加密算法,必须继承 AbstractPasswordValidator 类。

    注3:若勾选了「用户可编辑」,且设置了加密方式,保存成功后,再次更换加密方式,FineDB 中的密文无法同步更换,用户将无法成功登录。

    注4:修改同步用户加密方式后无需重启工程,立即生效。

    5. 同步用户管理

    同步完成后,同步用户管理按钮处,会新增多个下拉选项,如下图所示:

    5.1 立即同步

    点击后立即进行一次用户数据集同步。

    5.2 编辑

    打开同步用户对话框,可修改同步用户数据集配置。

    • 若未开启 4.2 节「用户可编辑」设置,支持管理员「禁用用户」,不支持「编辑用户」和「删除用户」。

    • 若开启了 4.2 节「用户可编辑」设置,支持管理员「禁用用户」和「编辑用户」,不支持「删除用户」。

           注:禁用、编辑、删除用户的操作,请参见 添加用户 第 3、4、5 章 

    image.png

    5.3 清空同步数据

    • JAR 包版本在 2021-03-17 及之后的工程,新增「清空同步数据」按钮,支持一键取消同步用户。

           清空同步数据将删除所有同步的用户、部门职务、角色、相关权限,且不再继续同步,恢复未同步的状态。

    • JAR 包版本在 2020-11-02 ~ 2021-03-17 之间的工程,同步的用户与「手动添加/导入的用户」可并存。

           不支持直接取消同步用户,但可将 4.2 节同步的「服务器数据集」切换为空数据集即可。

    • JAR 包版本在 2020-11-02 之前的工程,同步的用户与「手动添加/导入的用户」不可并存。

           如需取消同步用户,执行「添加用户」或「导入用户」的操作,即可取消同步用户。

    5.4 异常数据中断同步

    同步用户高度依赖数据源,若数据源出现问题,例如被恶意清空数据库表,会导致同步到系统中的用户被清空,操作无法逆转。

    因此 FineReport 提供同步熔断策略。10.0.18 及之后版本的报表工程,新增「异常数据中断同步」按钮。

    管理员开启「异常数据中断同步」后,可设置用户数量减少达到X%,停止同步。X为1-100的正整数。

    例如系统中原有100个同步用户(不包含手动添加/导入的用户数),设置为30%,即同步减少30(100*30%)个用户及以上,就会停止本次同步。

    同步失败的提醒如下图所示:

    失败提醒:21300031 - 本次同步用户数量将减少XX%(XX个),达到设定的中断值XX%。请检查数据源数据是否正常,或暂时关闭"异常数据中断同步"功能。

    5.5 下次同步时间

    系统会根据 4.1 节设置的「同步频率」,提醒管理员下次自动同步的时间。

    6. 同步失败提醒

    在同步用户过程中,可能会因为冲突出错,导致部分或全部用户、部门、职务、角色数据同步失败,带来权限没有更新。

    以上情况需要及时通知到对应的管理员,因此10.0.17 及之后版本的工程,新增「同步失败提醒」功能。

    6.1 设置方法

    管理员登录数据决策系统,点击「管理系统>用户管理>全局设置」,配置同步失败提醒推送的接收人,点击「保存」,如下图所示:

    注1:使用短信提醒之前需要先开通短信服务,开通方法参见文档:短信 。

    注2:使用邮件提醒之前需要先配置邮箱,具体步骤请参见:邮箱 。

    6.2 效果预览

    系统会在「第一次」手动同步/自动同步失败后,给管理员发送短信/邮件/平台提醒。直到下一次同步成功为止,之后再同步失败才会再次发送提醒。

    注:若多次连续同步失败,只会在「第一次同步失败」发送提醒消息。

           直到出现「同步成功/重启工程/关闭同步用户」的情况,才会重置提醒监控状态。

           之后再次出现同步失败才会再次发送提醒。

    1)短信提醒

    2)平台消息

    3)邮件提醒

    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526