我们正在开发一个简单的 web 应用程序,该应用程序将在我们的 Intranet 上提供。对应用程序的访问将由“用户”表控制:如果表中存在您的网络登录名,则您可以使用该应用程序。
该应用程序本身将使用 SQL 数据库。在我们当前的开发设置中,我们都是开发数据库的管理员,因此我们拥有完全的访问权限。然而,当它被部署到生产环境时,我们有几个选项可用于对数据库进行身份验证。
授予每个适当的用户他或她自己的数据凭据是否有意义,或者所有用户都应该在数据库上共享一个应用程序级用户帐户?
我们正在开发一个简单的 web 应用程序,该应用程序将在我们的 Intranet 上提供。对应用程序的访问将由“用户”表控制:如果表中存在您的网络登录名,则您可以使用该应用程序。
该应用程序本身将使用 SQL 数据库。在我们当前的开发设置中,我们都是开发数据库的管理员,因此我们拥有完全的访问权限。然而,当它被部署到生产环境时,我们有几个选项可用于对数据库进行身份验证。
授予每个适当的用户他或她自己的数据凭据是否有意义,或者所有用户都应该在数据库上共享一个应用程序级用户帐户?
Creating separate user accounts for each app user complicates things in my experience. If there isn't a security specification you have to design to, I would create a single logon for the app, create a database role, grant permissions to the role, and add the logon to the role.
You can still audit user actions if you use this method by passing user names as input parameters on your stored procedures.
每个用户的访问凭证将导致除了最小的用户群之外的所有用户群的后勤噩梦。在 Web 环境中,它也使事情变得非常复杂。
我见过(并使用过的)最常见的方法是为每个应用程序使用一个专用用户。所有访问都通过该用户名/密码进行。
您的应用程序将在任何情况下执行授权,因此您可以根据需要审核执行各种操作的用户名。