单点登录和数据库查询

时间:2013-04-25 19:04:08

标签: sql-server asp.net-mvc login asp.net-web-api

我有一个带有用户表和表的mssql数据库,用于大约6种不同的应用程序。每个应用程序在数据库中都有自己的架构。当用户登录时,用户将显示他有权访问的应用程序列表。

我想将用户表和应用程序分成他们自己的数据库,主要有两个原因。

  1. 可扩展性
  2. 维护
  3. 该项目的第一步是将users表移动到它自己的数据库中。然后使用web api服务允许任何应用程序与数据交互。例如 - IsUserValid,CreateUser,UpdatePassword ....

    我看到的问题是某些应用程序具有通过连接调用用户表的存储过程。例如:     在users.username = app.username

    上的用户内部联接应用程序中选择user.username,user.firstname,user.lastname,app.column1,app.column2

    有一种优雅的方法来解决这个问题吗?我知道我可以在两个独立的数据库中加入两个表,但我希望能够将应用程序数据库和用户数据库移动到不同的服务器上。

1 个答案:

答案 0 :(得分:0)

您始终可以创建linked servers并跨多个服务器查询数据。

SELECT * FROM schema.Table1 t1 JOIN server2.schema2.Table2 t2 ON t1.UserId = t2.UserId

替代解决方案是使用某种复制来跨所有数据库复制数据或修改过程,以便它们不依赖于用户数据。

相关问题