Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL登录访问ASP.Net应用程序数据库的权限_Asp.net_Sql Server 2005_Database Permissions - Fatal编程技术网

SQL登录访问ASP.Net应用程序数据库的权限

SQL登录访问ASP.Net应用程序数据库的权限,asp.net,sql-server-2005,database-permissions,Asp.net,Sql Server 2005,Database Permissions,我总是想知道,我需要为sql登录提供什么样的确切访问权限和权限,我可以从asp.net应用程序访问数据库。应用程序执行一些存储过程,将数据插入、更新和删除到表中。我也直接在表上进行选择、删除和更新。还有一些触发因素。 不知道是否有一个全面的权限矩阵列表可供帮助。好吧,这取决于您想让它变得多么复杂:-) 最简单的解决方案: 使您的登录/db用户具有db_datareader角色以读取所有表 使您的登录/db用户具有db_datawriter角色以写入所有表 至于执行存储过程,我们所做的是在数据

我总是想知道,我需要为sql登录提供什么样的确切访问权限和权限,我可以从asp.net应用程序访问数据库。应用程序执行一些存储过程,将数据插入、更新和删除到表中。我也直接在表上进行选择、删除和更新。还有一些触发因素。
不知道是否有一个全面的权限矩阵列表可供帮助。

好吧,这取决于您想让它变得多么复杂:-)

最简单的解决方案:

  • 使您的登录/db用户具有db_datareader角色以读取所有表
  • 使您的登录/db用户具有db_datawriter角色以写入所有表
至于执行存储过程,我们所做的是在数据库中创建一个新的自定义数据库角色“db_executor”,如下所示:

CREATE ROLE [db_executor] AUTHORIZATION [dbo]
GRANT EXECUTE TO [db_executor]
然后我们也将这个角色授予db用户。此新自定义数据库角色将对数据库中所有现有和将来存储的过程/函数具有执行权限

有了它,您的db用户可以读写任何表,执行任何存储过程和存储函数

更复杂的解决方案: 当然,您还可以向单个db用户和/或db角色授予对单个表、视图、过程和函数的权限。但它可能变得相当混乱和复杂


马克

好吧,这取决于你想让它变得多么复杂:-)

最简单的解决方案:

  • 使您的登录/db用户具有db_datareader角色以读取所有表
  • 使您的登录/db用户具有db_datawriter角色以写入所有表
至于执行存储过程,我们所做的是在数据库中创建一个新的自定义数据库角色“db_executor”,如下所示:

CREATE ROLE [db_executor] AUTHORIZATION [dbo]
GRANT EXECUTE TO [db_executor]
然后我们也将这个角色授予db用户。此新自定义数据库角色将对数据库中所有现有和将来存储的过程/函数具有执行权限

有了它,您的db用户可以读写任何表,执行任何存储过程和存储函数

更复杂的解决方案: 当然,您还可以向单个db用户和/或db角色授予对单个表、视图、过程和函数的权限。但它可能变得相当混乱和复杂

马克