2017-02-24 73 views
0

我们正在建立一个新的应用程序框架,并且我们想知道为用户设置数据库安全性的最佳实践。在我们的旧框架中,有一个用户登录过程,一旦用户登录,该框架就控制了用户被允许访问的窗体和菜单选项。所有用户使用相同的用户帐户访问数据库。使用MSSQL进行应用程序安全的最佳实践

这种方法的缺点是你不能使用SYSTEM_USER来找出谁在发出特定的数据库请求。

新框架仍然会有一个登录表单,它将控制一个人可以访问的菜单选项。每次将新用户添加到我们的应用程序时,我们是否应该设置数据库用户帐户?这会导致任何许可问题,因为你不能使用连接池?

回答

0

它不会导致许可问题,但它会生成大量的连接,这可能会导致性能问题。

一个更好的解决方案是将一个参数添加到您的存储过程,以传递当前用户的用户标识以使其可以被记录。

如果传入参数是不可取的,那么可以将当前用户放在CONTEXT_INFO()中,或者如果您使用SQL 2016,SESSION_CONTEXT()并从那里记录它。 https://www.mssqltips.com/sqlservertip/4094/phase-out-contextinfo-in-sql-server-2016-with-sessioncontext/

+0

感谢菲尔为您解答。只是我正在寻找的建议 –

相关问题