多less个数据库帐户

应该为给定的应用程序设置多less个用户帐户? 分离在哪里?

  • 它应该是每个应用程序一个login?
  • 1个程序的应用程序?
  • 1的前端和后端?

你如何设置你的数据库帐户?

我会build立:

  • OOB的股票pipe理账户。 将其用于没有其他帐户可以执行的操作。 保持locking状态,只有在没有select的情况下才能将其拉出。
  • 一个辅助pipe理员帐户, 每个pipe理员一个 。 在这个帐户中进行所有的日常pipe理工作,但是在这些pipe理员帐户上,省略真正危险的东西(DROP DATABASE,DROP SCHEMA等)的权限,使用上面提到的开箱即用的admin帐户为了那个原因。 (这个想法是强迫你login,因为另一个帐户应该是一个精神指标,你将要做一些潜在的破坏性的事情,每天工作的pipe理员帐户可以有一个内置的“安全开关”错误的行动,可能会削弱您的数据库priv的forms)
  • 如果您使用基于机器的连接(连接池,代理连接等),请使用该帐户。 授予此帐户所需的最低权限(以防止帐户通过DROP DATABASE等造成巨大伤害)
  • 如果你有最终用户的直接连接,每个最终用户都有一个帐户 ,除非你的最终用户是一个广泛的类别你不需要分开这个类别的特权。 在这种情况下,每个用户都有一个帐户。

2009-07-03为清晰度重新编辑。

我要走了,这要看情况。 这真的取决于你的数据库将如何使用。 不同的场景:

  • 内部应用程序代表用户连接。 在这种情况下,我们在域中创build一个服务帐户,并授予它对域的访问权限。 应用程序使用这个帐户进行所有数据库访问。
  • 面向外部(Internet)的应用程序。 在这种情况下,我们创build一个SQL Serverlogin,因为Web服务器将在DMZ中,因此不会在域中。 应用程序使用这个帐户进行所有数据库访问。
  • Interal应用程序传递用户的凭证。 您可以在SQL Server Reporting Services和其他通过实际凭据的情况下看到这一点(审计跟踪)。 在这种情况下,您可能会拥有不同级别的权限。 每个级别应具有相应的Windows域安全组。 Windows用户应该是这些组的成员。 这些组应该绑定到数据库中用户定义的数据库angular色。 这些数据库angular色应具有所有权限。
  • 直接访问数据库。 报告types的系统会让你看到更多。 在这种情况下,Windows安全组再次通过使用数据库angular色授予访问权限。

这一个你会得到各种答案。

我设置了连接string中使用的单个应用程序(读取“每个应用程序”)帐户。 没有用户(除了我的开发组)可以直接访问数据库。

我主要在公司MS环境(.NET,SQL Server,Active Directory)中工作。 通常,authentication通过当前login的用户上下文和应用程序特定的安全表进行 代码处理authentication,然后从数据库获取应用程序授权。 这需要将用户维护的很大一部分工作交给我们的IT部门(密码策略和重置,帐户到期,禁用等)。

  • 我相信需要至less有足够的帐户,以便如果一个数据库客户端开始导致问题,您可以禁用该帐户,而不禁用所有访问服务器
  • 通常我不会使用安装帐户来访问更多的单个数据库。
  • 我为Web应用程序和内部客户端使用单独的帐户。