场景:
两套环境中,如果需要公用同一个用户,但是用户关联的角色不想有关联。每个环境都有一个自己的用户角色,则可以参考本文章做配置。
- 在启动工程的yml文件中,指定auth.UserRoleRel模型的数据源,设计器和业务工程注意保持一致。
pamirs: framework: data: ds-map: user: pamirs auth: pamirs model-ds-map: "[auth.UserRoleRel]": biz
- 指定biz数据源指向的数据库,业务环境A和业务环境B都使用biz数据源,但指向的数据库要改为不同的,这样,就会把用户角色关系表放到biz指定的不同数据库下,实现了用户角色隔离。
pamirs: datasource: biz: driverClassName: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://127.0.0.1:3306/demo_biz?useSSL=false&allowPublicKeyRetrieval=true&useServerPrepStmts=true&cachePrepStmts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&autoReconnect=true&allowMultiQueries=true username: root password: 123456 initialSize: 5 maxActive: 200 minIdle: 5 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true asyncInit: true
注意事项:
- 注意两个环境在新增角色时id不能一致。
- 这样配置需要自行隔离业务工程的角色
-
如果配置有错误会碰到一些异常,一下列举了可能的一些异常:
- 点击登录报错:未找到入口应用或去权限访问:
去数据库找auth_user_role_rel这张表,查看里面有没有admin账号关联的角色,如果没有,自己手动新增一条数据,给admin一个管理员角色。参考下图:
- 启动时执行删表sql或数据库有多个被删除的UserRoleRel表:_d_user_role_rel
检查ds_map的数据源配置,有业务工程没有正确指定ds_map数据源。比如数据源配置不一致。
- 点击登录报错:未找到入口应用或去权限访问:
Oinone社区 作者:yexiu原创文章,如若转载,请注明出处:https://doc.oinone.top/api-sdk/19784.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验