我有一个使用Entity Framework / Sql Server 2008在ASP.NET MVC中开发的应用程序 实际上,使用“sa”帐户建立与数据库的连接。
是否可以使用,而不是“sa”windows最终用户凭据? 这将有助于更有效地控制每个用户的安全限制。 我在我的应用程序Windows身份验证中使用。
谢谢!
答案 0 :(得分:1)
可能但是整个系统必须在Windows域内运行,用户必须拥有域帐户,并且必须为Kerberos委派启用系统基础结构(属于ServerFault)。原因是系统中有两个环节 - 第一个用户从其客户端计算机向Web服务器进行身份验证,然后Web服务器将用户凭据委派给数据库服务器。如果客户端计算机,Web服务器和数据库服务器是不同的计算机,则必须启用Kerberos委派(如果db和Web在同一服务器上运行,则在没有Kerberos的情况下应该没问题)。您的Web应用程序必须使用模拟,并且您的连接字符串必须使用Windows集成安全性。
同样使用最终用户凭据会降低系统性能,因为EF必须为每个用户维护单独的连接池。 SQL Server的管理员必须使用您的应用程序为每个用户(或用户组)授予访问权限。