我们需要构建一个EXE应用程序,该应用程序在访问我们的多租户SQL数据库的客户服务器上运行。
我们在Web应用程序中使用的每个表都有一个Column SubscriberId,用户可以将用户限制为只属于其SubscriberId的记录 - 这些记录完全正常(在我们的服务器上)。
我们有一个Exchange to SQL服务,它在我们的服务器上运行,可以将Exchange联系人和约会同步到我们的SQL表。问题是我们需要客户向我们授予Exchange' ApplicationImpersonation'我们在其服务器上访问数据的角色 - 这意味着我们可以访问整个Exchange数据库存储。
大多数客户都愿意允许我们访问级别,但有些客户不希望我们拥有该级别的访问权限 - 这是可以理解的。
我们的同步应用程序是一个C#.NET控制台应用程序,我们希望对其进行调整,以便我们可以让最终用户在其服务器上安装该应用程序,并使其与我们的服务器远程同步。
问题:是否可以在SQL Server 2008R2上创建一个只能访问该用户的行的用户,该用户已过滤WHERE SubscriberId = 201(例如)。
我们允许端口1433访问其服务器,用户/密码将用于App.config中的连接字符串。
如果是这样,我们可以在Windows exe应用程序中创建一个管理面板,在那里他们设置SQL用户/密码和他们的Exchange超级用户。然后他们可以远程同步 - 但只能在我们的SQL数据库中看到他们自己的记录。
否则,似乎我们需要重新使用应用程序以使用API和备用安全方案。那显然会有更多的工作: - (
谢谢,查尔斯
答案 0 :(得分:0)