问题标签 [multi-tenant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
70889 浏览

sql - 如何创建具有共享表结构的多租户数据库?

我们的软件目前在 MySQL 上运行。所有租户的数据都存储在同一个模式中。由于我们使用的是 Ruby on Rails,我们可以轻松确定哪些数据属于哪个租户。然而,当然也有一些公司担心他们的数据可能会受到损害,因此我们正在评估其他解决方案。

到目前为止,我已经看到了三个选项:

  • 多数据库(每个租户都有自己的 - 几乎与每个客户 1 台服务器相同)
  • 多模式(在 MySQL 中不可用,每个租户在共享数据库中都有自己的模式)
  • 共享模式(我们当前的方法,可能在每列上都有额外的识别记录)

多模式是我最喜欢的(考虑成本)。然而,创建一个新帐户并进行迁移似乎非常痛苦,因为我必须遍历所有模式并更改它们的表/列/定义。

问: Multi-Schema 似乎被设计为每个租户的表略有不同——我不想要这个。是否有任何 RDBMS 允许我使用多模式多租户解决方案,其中表结构在所有租户之间共享?

PS我所说的多是指超多(10.000+租户)。

0 投票
2 回答
288 浏览

architecture - 对于多租户系统,我缺少哪些个性化技术?

大家好,我正在撰写一篇关于多租户网络信息系统中的个性化的科学论文。

我的问题是我是否缺少以下列表中的个性化技术:

第一个个性化是模型更改,其中底层(数据)模型被调整以适应租户的需求。典型的变化从向对象添加属性到向现有模型完全添加实体和关系不等。工业应用程序的一个示例是 SalesForce,其中可以将实体添加到任何模型,例如特定领域的实体。SalesForce 的可变性是在架构设计时引入的,并且可以在运行时绑定。

第二种个性化类型是视图更改,其中视图基于每个租户进行更改。典型的变化从特定于租户的徽标到完成不同的界面和模板。工业应用的一个例子是内容管理系统 Wordpress,其中可以在运行时创建不同的模板来显示特定于租户的内容视图。

控制器变更是第三种个性化类型,控制器对不同的租户做出不同的响应,并基于相同的行为,以不同的方式通过信息系统引导他们。工业应用程序的一个示例是 Microsoft CRM 的在线多租户版本,它使租户能够为最终用户创建特定的工作流。

第四种个性化类型是系统连接器更改,其中连接到另一个系统的扩展是可变的,以便能够连接到提供类似功能的不同信息系统。一个例子可能是两个租户想要验证他们的用户而不让他们第二次输入他们的凭据,基于两个不同的用户管理系统。

最后,第五类个性化是系统组件变更,其中相似的功能集由不同的组件提供,这些组件是根据租户的需求进行选择的。系统组件更改的一个实际用途是 Facebook,一个社交网站,它使最终用户能够安装来自 Facebook 和第三方的组件以获得更多功能。

随意发表评论。我希望这个问题不会超出 stackoverflow.com 的范围。根据您的回答,我将在文章中确认 Stackoverflow 站点 :-)。

0 投票
1 回答
809 浏览

oracle - 多租户应用程序中的 Oracle 行级别安全性/新记录的默认值

任务

改造现有应用程序以使用多租户方法。应该可以创建租户,并且每个用户的会话应该准确引用一个活动租户。每个租户应该只能看到和更新他的数据库模式分区。

方法

  • 创建一个包含租户 ID 的 Oracle 应用程序上下文
  • 将租户 id 列添加到应限定范围的任何表中
  • 创建一个谓词函数,为 SELECT、INSERT、UPDATE 和删除返回 "tenant_id = sys_context('tenant_context', 'tenant_id')"
  • 通过 dbms_rls 添加适当的策略来注册谓词函数

这就像一个魅力,而无需触及 SELECT、UPDATE 和 DELETE 的现有应用程序

问题

插入tenant_id 列时未设置并且出现安全异常。有什么方法可以像谓词函数一样流畅地始终设置安全相关字段?我宁愿不向 300 多个表添加触发器。

0 投票
2 回答
2456 浏览

asp.net-mvc - 如何开始使用多租户 MVC 应用程序

我已经搜索了示例并找到了几个,但它们是整个大型项目。我正在寻找一些关于如何开始构建 MVC 多租户应用程序的示例。我认为,第一部分是破译网址。

在 ASP.Net 中,我就是这样做的。我通过查看 DNN 代码得到了这个。我将如何在 MVC 中做同样的事情?

全球.asax

然后在我的基本页面中,我从上下文中获取值。

0 投票
1 回答
432 浏览

saas - 多租户架构 - SQL 视图与应用程序逻辑,或两者兼而有之?

首先,让我先说我从未直接使用过 SQL 视图。我不知道它们是否是过时的东西,或者它们是否是在这个舞台上做事的正确方式。在考虑安全性时,您更喜欢这两种方法中的哪一种(不要向 WidgetCorp 用户显示存档的 Acme 信用卡号等),除了安全性之外,还有其他重要的考虑因素吗?

0 投票
2 回答
872 浏览

asp.net-mvc - Unity 多租户

我正在尝试使用 Unity 实现这个场景,但我不知道如何做到这一点:

应该使多个客户端(多租户)可以访问同一个 Web 应用程序 (ASP.NET MVC)。网站的 URL 将区分客户端(我知道如何获取)。

因此,获取 URL 可以设置(我们称之为)IConnectionStringProvider 参数(随后将注入 IRepository 等)。通过哪种机制(使用 Unity)在运行时设置 IConnectionStringProvider 参数?

我过去曾使用 Windsor 和 IHandlerSelector 完成此操作(请参阅),但这是我第一次尝试使用 Unity。

任何帮助都深表感谢!提前致谢

0 投票
4 回答
2238 浏览

ruby-on-rails - 我应该使用多个数据库吗?

我即将使用 Ruby on Rails 创建一个应用程序,我想使用多个数据库,基本上是一个会计应用程序,每个用户都有多个公司。我想为每个公司创建一个数据库

我发现这篇文章http://programmerassist.com/article/302 但我想阅读更多关于这个问题的想法。我必须在 MySQL 和 PosgreSQL 之间做出决定,哪个数据库可能更适合我的问题。

0 投票
3 回答
847 浏览

asp.net - 在多租户站点中实施布局

我正在就如何从 UI 角度处理 ASP.NET 中的多租户站点提出一些建议。

我希望能够为客户提供的布局选择,即

布局 1:顶部水平导航。搜索结果在中间的表格中。底部有一些文字。

布局 2:左侧导航垂直。中间有一段文字。搜索结果在底部

布局 3、布局 4、布局 x 等...

各种布局中的每个元素也可能不同。例如,搜索结果在布局 1 中可能看起来像简单列表,但在布局 2 中将具有完全不同的外观。

一旦客户决定了 Layout x,我就需要通过更改颜色、徽标等将他们的公司标识应用于布局......

因此,任何关于使用何种方法的建议将不胜感激。

非常感谢,

ETF费尔法克斯

0 投票
3 回答
3122 浏览

asp.net - asp.net 中的带宽监控

嗨,我们正在 Asp.Net 中开发一个多租户应用程序,每个租户都有单独的数据库,其中一个要求是监控每个租户的带宽使用情况,

我尝试搜索但没有找到关于该主题的太多帮助,我们希望准确监控每个租户使用了多少带宽,而每个租户可以拥有自己的顶级域或子域或两者的组合。

那么有哪些可用的选项,我能想到的可以是

  1. IIS 日志监控意味着一个单独的应用程序,它将计算每个租户的带宽。
  2. 从应用程序中记录租户的每个请求和响应,然后据此计算总带宽使用量。
  3. 如果可用,请使用一些第三方组件

那么你认为最好的方法是什么,如果还有其他方法可以做到这一点。

0 投票
1 回答
2088 浏览

asp.net - 如何测试支持多个域的多租户应用程序

您好,我们正在构建一个多租户应用程序,它将支持每个租户可以拥有一个唯一的顶级域,该应用程序是使用 asp.net 3.5 和 SQL servr 2005 构建的,而每个租户将拥有不同的数据库。

我在 StackOverFlow 上看到过很多关于类似应用程序的问题,但没有一个与测试有关,我想知道如何在开发环境中测试应用程序,特别是

  1. 我们如何测试每个客户是否根据 URL 连接到自己的数据库。
  2. 我们如何在本地系统上模拟不同的域。像 abc.com 和 xyz.com 都去开发机器的 IIS。

任何可能有助于我们开发此类应用程序的建议。