我有一个在我的SQL Server 2012实例之一上安装了应用程序数据库的供应商。他告诉我,该应用程序使用的SQL Auth帐户需要DB数据读取器,数据写入器,数据库所有者和sysadmin。这对我来说毫无意义,因为sysadmin不需要其他角色。安装后,我删除了sysadmin,并且该帐户具有数据读取器和写入器。该应用程序停止工作。
因此,我正在寻找一些技巧和想法,以找出应用程序用户所需的最低特权。我看到该数据库具有存储过程,但是没有任何函数,类型,程序集,因此我只想创建一个具有所有必需授权的角色。数据库所有者将比sysadmin更好。我可以忍受。
答案 0 :(得分:0)
这取决于应用程序需要做什么。如果您的应用程序仅在读取数据,则为datareader角色。如果它读取和写入数据库,则读取器和写入器都很好。请注意,写入数据仅包括插入和更新,而不包括修改或更改。在大多数情况下,您可以分配一系列角色,而不需要提供对命令的登录访问权限,例如截断或删除表-很明显,为什么拥有上帝权力的应用程序不是一个好主意。
以下是您可以分配的所有可能角色及其作用的列表。希望了解应用程序的功能将有助于您更流畅地分配这些角色。
预定义的数据库角色
您可能需要创建自己的角色,但可以访问多个预定义的数据库角色:
固定角色
固定服务器角色在整个服务器范围内应用,并且有几个预定义的服务器角色: