java吧 关注:1,232,271贴子:12,696,028

有大佬知道SaaS平台如何做到多租户数据隔离的吗?

只看楼主收藏回复

A-B-C公司都只能看到自己公司的数据


IP属地:四川来自iPhone客户端1楼2022-10-29 20:31回复
    还有就是租户登陆时,如何判断他属于哪个公司的呢? 比如A公司员工登陆,不会跳转到B-C公司


    IP属地:四川来自iPhone客户端2楼2022-10-29 20:32
    回复
      目前正在学习saas平台的东西,但这两个问题一直困扰着我


      IP属地:四川来自iPhone客户端3楼2022-10-29 20:34
      回复
        后台是多租户共享一个后台,根据租户账号权限,所购买服务,展示不同菜单按钮


        IP属地:四川来自iPhone客户端4楼2022-10-29 20:35
        回复
          这个群?


          IP属地:江苏来自iPhone客户端6楼2022-10-29 22:54
          收起回复
            有区分的字段吧。我现在的项目分为政府段和企业端。登陆的账号没企业id就是政府账号,有企业id的就是企业账号。


            IP属地:浙江来自iPhone客户端7楼2022-10-29 23:23
            回复
              黑马有个sass项目去看看


              IP属地:福建来自iPhone客户端8楼2022-10-30 00:18
              回复
                区分数据很容易,基本上就是一个foreign key就能办到。但是如何高效读取则是个大问题。所以数据库设计也要以网站大目标(性能,安全等)为前提。那么这些大目标怎么实现? 如果在设计阶段还好办。如果已经有个架子了,那么还要看网站架构。最后还要考虑一下网站流量,压力测试等。你觉得你一句话能问出啥?雇个专家吧。


                IP属地:澳大利亚来自Android客户端9楼2022-10-30 08:09
                回复
                  多租户,一种是表加字段,这种最简单了,orm框架拦截sql动态修改sql就行了,一种是库分离,甚至物理上也是隔离的,这种就要走多数据源动态切换了,代码也很多!登录确实是最大问题,比如你a租户下有个admin用户,b租户下也有个admin用户,遇到过两种解决方案的,一个是二级域名,一个租户一个域名,一个是自己手动选择租户,本质上还是一样的,需要能区分是哪个租户


                  IP属地:湖南来自Android客户端10楼2022-10-30 08:35
                  收起回复
                    saas小程序有自己的appid的,可以把这个appid放到请求头里,根据请求判断是哪个端来了,再根据不同的端去做判断就好了


                    IP属地:浙江来自Android客户端12楼2022-10-30 12:44
                    回复
                      请求时带上租户id


                      IP属地:广东来自iPhone客户端13楼2022-10-30 14:25
                      回复
                        表结构就要设计,同时拦截器配合。分为一些,共享表,一些数据隔离表,一些物理隔离表(不同数据库实例)


                        IP属地:江苏来自iPhone客户端14楼2022-10-30 14:35
                        回复
                          我们这是登录时用域名和账号确定租户放到threadlocal,然后表里加字段,拦截sql自动加这个字段


                          IP属地:山东来自Android客户端15楼2022-10-30 14:38
                          回复
                            表有关呀,一般会有人员公司关联表。


                            IP属地:江西来自Android客户端16楼2022-10-30 14:45
                            回复
                              多租户复杂的是安全性问题和性能问题,而不是如何实现多租户功能。楼上说的什么字段区分,什么拦截器是低端中的低端,没有任何一家正规saas是这样简单实现的


                              IP属地:上海来自Android客户端17楼2022-10-30 15:11
                              收起回复