Sql server SQL Server-用于应用程序访问的角色是什么?

Sql server SQL Server-用于应用程序访问的角色是什么?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,SQL登录必须具有哪些服务器角色和/或数据库角色才能执行以下操作: 读取数据(包括临时表) 写入数据(包括临时表) 在被授予访问权限的数据库中执行任何SP 我们正在从SQL2000迁移到2008,我检查了所有的登录,发现它们都设置为sysadmin&db_owner,这不好。我们使用这些登录的应用程序只会执行我上面列出的操作,所以我很好奇。我知道我可以为每个登录设置数据库角色db_datareader&db_datawriter,但这不包括执行SP。我们在2个或我们的数据库中有近300个SP,必

SQL登录必须具有哪些服务器角色和/或数据库角色才能执行以下操作:

  • 读取数据(包括临时表)
  • 写入数据(包括临时表)
  • 在被授予访问权限的数据库中执行任何SP
  • 我们正在从SQL2000迁移到2008,我检查了所有的登录,发现它们都设置为sysadmin&db_owner,这不好。我们使用这些登录的应用程序只会执行我上面列出的操作,所以我很好奇。我知道我可以为每个登录设置数据库角色db_datareader&db_datawriter,但这不包括执行SP。我们在2个或我们的数据库中有近300个SP,必须检查每个SP并在扩展属性中设置登录权限将太长和繁琐

    非常感谢您的帮助

    必须检查每个SP并在扩展属性中设置登录权限,这将太长和繁琐

    然而,这也是最安全的


    使用内置角色会将太多的数据库暴露给应用程序。

    能否授予
    db\u datareader
    和/或
    db\u datawriter
    执行权限?这将授予用户在其有权访问的数据库中执行任何存储过程的权限。如果您有视图,还需要授予它们选择权限

    GRANT EXECUTE TO db_datawriter
    

    我要么处理它并手动设置权限,要么(我的首选)创建具有您想要授予的权限类型的数据库角色,并为这些角色分配登录名。这样,如果多个登录需要相同的权限集,您只需给他们相同的角色


    另外,如果您的可编程性对象具有某种前缀命名约定,例如,从登录信息表中读取的过程都以pAccount或类似的内容开始,那么您可以根据例程的前缀动态地向角色授予
    权限。

    是,最安全,但如何管理所有SP和登录权限?我们这里没有DB管理员,只有我(另一个最近离开的人)……我想,既然这些应用程序没有“改变”任何表,那么就不需要“改变”……这包括删除临时表吗?我选择了这条路线,因为它为我目前的情况提供了最大的灵活性。谢谢你的信息!