【发布时间】:2019-01-18 18:57:47
【问题描述】:
我想将应用程序限制为只读查询。换句话说,我希望应用程序只处理那些不改变数据库状态的查询。我正在使用 ADO.NET。我不想针对具有只读权限的数据库创建新用户。欢迎提出任何建议。
【问题讨论】:
-
为什么不想创建一个新用户?这才是真正做到这一点的方法,除非您对应用程序代码有 100% 的控制权,并且可以确保不会通过它执行任何数据更改语句。
-
最好、最安全、最简单的方法是将应用程序使用的数据库用户限制为只读。甚至还有一个名为
db_denydatawriter的内置角色,它会自动拒绝拥有它的用户对任何数据库对象的写入权限。 -
数据库是外部数据库,不允许创建新的数据库用户(我们没有权限创建新的数据库用户)。我正在使用 Windows 身份验证。
标签: c# sql sql-server ado.net