我的目标是阻止用户直接访问数据库服务器。一种方法是在前端应用程序和数据库服务器之间的中间创建WCF服务或Web服务。
首先,用户将通过应用程序进行身份验证。随后,应用程序将通过WCF服务连接以执行业务逻辑操作。 WCF服务将使用一个Windows帐户执行与数据库相关的操作。这将阻止其他用户直接访问数据库服务器,因为该权限仅授予特定的一个Windows帐户。
以下是我的问题:即使数据库访问仅授予一个Windows帐户,并且WCF将使用此Windows帐户执行与数据库相关的操作,是否可以使用登录的凭据标记所有与数据库相关的操作用户?
更新
谢谢你的回复。似乎上述情况无法实现。我目前正在探索SQL 2008应用程序角色功能。其中一个例子是here。但经过进一步探索后,显然连接池存在问题。
更新
有关SQL Server应用程序角色的堆栈溢出线程here
答案 0 :(得分:0)
取决于
如果你的数据库和WCF服务在同一个盒子上并且你做了大量的jiggery pokery来模仿,那么它是可能的。只要将数据库移动到另一个框,它就会停止工作。
这是一个已知的限制,原因是模拟会创建一个令牌,让你进入一个盒子,但这不能通过另一个盒子。我试图找到Q& A,其中MS的家伙已经回答但仍然无法做到。每当我找到它时,都会更新。
答案 1 :(得分:0)