4

我正在使用 LinqToSQL 和可信连接来处理数据库选择/更新/插入/删除。过去,我一直使用存储过程,并且只授予数据库中特定存储过程的应用程序池标识的执行权限。这是我的第一个 LinqToSql 项目(我真的很喜欢它的帮助)。我不希望授予 dbo 对应用程序池身份的访问权限以使 LinqToSql 工作(但如果建议这样做,那么我不介意)。我可以向应用程序池身份授予什么类型的权限,以便 LinqToSql 拥有最低权限?还是我应该只使用 dbo 权限并完成它?

根据KristoferA 的回答,这是我在数据库中授予应用程序池身份的权限:
EXEC sp_addrolemember 'db_datareader', 'app_pool_identity'
EXEC sp_addrolemember 'db_datawriter', 'app_pool_identity'

与仅授予必要的存储过程执行权限的安全级别不完全相同,但考虑到我仅通过使用 Linq2SQL 就获得了巨大的开发收益,我对此非常满意。这比授予完整的 dbo 访问权限要好。

4

2 回答 2

1

db_datareader 和 db_datawriter 如果您只想读取和写入数据而不会弄乱架构更改和其他东西就足够了......

于 2009-09-21T13:50:33.063 回答
0

LinqToSQL 创建动态生成的 SQL。因此,它需要完全访问数据操作语言命令(插入、更新、删除)。您的应用程序帐户不需要访问数据定义语言命令(创建、删除、更改等)。

于 2009-09-21T13:51:07.543 回答