在混合多租户解决方案中动态连接到不同的数据库

发布于 2024-11-05 04:21:32 字数 360 浏览 4 评论 0原文

我正在研究多租户和多实例方法并选择了混合方法。

我保留 ASP.Net MVC 2 应用程序的单个实例,但克隆每个客户端的数据库结构。我正在使用 LINQ to SQL。

现在,我有一个两者的实例,因此只有一个连接字符串正在工作。

我计划为许多客户扩展它。

我可以编写代码来创建数据库结构的克隆,创建数据库用户并在新客户端注册时授予权限。我还将把所有这些详细信息(数据库名称、数据库用户、允许的应用程序用户)保存在表中。

但是如何让应用程序根据登录者使用不同的数据库呢?

我什至不知道我应该采取什么方法来做到这一点。我应该以编程方式将连接字符串添加到 web.config 中吗?还有其他方法可以做到这一点吗?

I was researching about multi-tenancy and multi-instance approaches and chose a hybrid.

I keep a single instance of my ASP.Net MVC 2 application but clone the database structure for each client. I am using LINQ to SQL.

Right now, I have one instance of both so just a single connection string is working.

I am planning to expand it for many clients.

I can write code to create a clone of the database structure, create a db user and give permissions whenever a new client signs up. I also will save all these details (db name, db user, allowed app users) in a table.

But how can I make the app use a different database based on who is logged in?

I can't even figure out the approach I should take to do this. Should I programmatically add connection string to web.config? Is there another way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼前雾蒙蒙 2024-11-12 04:21:32

DataContext 的构造函数之一接受连接字符串。您可以根据用户的特定请求来组装此字符串。

这将覆盖默认连接。

One of the constructors for DataContext accepts the connection string. You can assemble this string based on the user for the specific request.

This will override the default connection.

吝吻 2024-11-12 04:21:32

检查 DataContext 的构造函数重载,其中有一个需要连接字符串。您只需根据登录用户映射一个字符串属性即可。

请不要以编程方式将每个用户的连接字符串添加到 web.config,考虑可扩展性!

Check the constructor overloads for the DataContext, there is one that takes connection string. You just need to map a string property against the logged in user.

Please don't programmatically add EVERY user's connection string to web.config, think scalability!!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文