我总是想知道我需要为我从我的 asp.net 应用程序中使用来访问数据库的 sql 登录提供哪些确切的访问权限和权限。应用程序执行一些存储过程,将数据插入、更新和删除到表中。我也直接在表上选择、删除、更新。还有一些触发器。想知道是否有一个完整的权限矩阵列表来提供帮助。
2310 次
1 回答
1
好吧,这取决于你想让它变得多复杂:-)
最简单的解决方案:
- 使您的登录/数据库用户具有读取所有表的 db_datareader 角色
- 使您的登录/数据库用户具有 db_datawriter 角色来写入所有表
至于执行存储过程,我们所做的是在我们的数据库中创建一个新的自定义数据库角色“db_executor”,如下所示:
CREATE ROLE [db_executor] AUTHORIZATION [dbo]
GRANT EXECUTE TO [db_executor]
然后我们也将此角色授予 db 用户。这个新的自定义数据库角色将对数据库中所有未来存储的 procs/func 的所有现有AND具有执行权限。
有了这个,您的 db 用户可以读取和写入任何表并执行任何存储的过程和存储的函数。
更复杂的解决方案: 您当然也可以将单个表、视图、过程、函数的权限授予单个数据库用户和/或数据库角色。但它可能会变得非常混乱和复杂。
马克
于 2009-03-31T08:32:50.590 回答