一个应用程序应该设置多少个用户账户?应该在哪里划分?
- 每个应用程序是否应该登录一次?
- 每个程序 1 个应用程序?
- 1 用于前端和后端?
如何设置数据库帐户?
答案1
我会设置:
- OOB 附带的股票管理帐户。使用此帐户执行其他帐户无法执行的操作。将其锁定,只有在别无选择时才将其取出。
- 辅助管理员帐户,每个管理员一个。 做全部在该帐户中,您可以执行日常管理工作,但在这些管理员帐户中,省略执行真正危险操作(DROP DATABASE、DROP SCHEMA 等)的权限,为此使用上面提到的现成管理员帐户。(这个想法是,强迫您以另一个帐户登录应该是一个心理信号,表明您即将执行可能造成破坏的事情,并且日常工作的管理员帐户可以具有内置的“安全开关”,其形式是缺少可能破坏数据库的操作的权限)
- 如果您使用基于计算机的连接(连接池、代理连接等),请使用一个帐户。授予此帐户运行所需的最低权限(以防止该帐户通过 DROP DATABASE 等造成巨大损害)
- 如果你有来自最终用户的直接连接,每个最终用户一个帐户,除非你的最终用户属于广泛的类别和您无需为该类别单独分配权限。在这种情况下,每个用户都有一个帐户团体。
2009-07-03 重新编辑以提高清晰度。
答案2
我的观点是:视情况而定。这实际上取决于您的数据库的使用方式。不同的场景:
- 代表用户进行连接的内部应用程序。在这种情况下,我们在域内创建一个服务帐户并授予其对域的访问权限。应用程序使用此帐户进行所有数据库访问。
- 面向外部(Internet)的应用程序。在本例中,我们创建 SQL Server 登录名,因为 Web 服务器将位于 DMZ 中,因此不会位于域中。应用程序使用此帐户进行所有数据库访问。
- 内部应用程序传递用户的凭据。您可以在 SQL Server Reporting Services 和其他传递实际凭据很重要的情况(审计跟踪)中看到这一点。在这种情况下,您可能会拥有不同级别的权限。每个级别都应该有适当的 Windows 域安全组。Windows 用户应该是这些组的成员。这些组应该与数据库中的用户定义数据库角色相关联。这些数据库角色应该拥有所有权限。
- 直接访问数据库。在报告类型的系统中,您会更多地看到这种情况。在这种情况下,Windows 安全组再次通过使用数据库角色授予访问权限。
答案3
关于这个问题你将会得到各种各样的答案。
我设置了用于连接字符串的单个应用程序(即“每个应用程序”)帐户。除我的开发组外,没有用户可以直接访问数据库。
我主要在企业 MS 环境(.NET、SQL Server、Active Directory)中工作。通常,身份验证是通过当前登录的用户上下文和特定于应用程序的安全表进行的。代码处理身份验证,然后从数据库获取应用程序授权。这减轻了我大部分用户维护的负担,并将其交给了我们的 IT 部门(密码策略和重置、帐户过期、禁用等)。
答案4
- 我认为至少需要有足够多的账户,这样如果一个数据库客户端开始引起问题,你可以禁用该账户,而无需禁用对服务器的所有访问
- 通常我不会设置一个帐户来访问多个数据库。
- 我为 Web 应用程序和内部客户端使用单独的帐户。