使用 System.Data.SqlClient
访问 SQL Server 数据库,是否可以强制执行只读权限?
我想允许可信用户在网站中编写自己的 SELECT 语句。
不,我不是在钓鱼!显而易见的解决方案是在数据库中创建一个只读用户,并在连接字符串中使用这些凭据,而且只有傻瓜才会接受来自网页的 SQL 语句。这是一个用户部署问题,我不相信其他人能正确设置它,也不想编写代码来检查只读连接字符串是否只读。
一种解决方案是解析 SQL 并验证它是否为只读命令,或者做类似的事情。我想要做的是像这样的事情:
SqlConnection conn = new SqlConnection(myConnectionString, Flags.Readonly)
更新 给定一个具有SA权限的连接字符串,“create user blah with password=xxx”“use my-db”“create login blah”“grant select on mytable to blah”。然后创建一个新的连接字符串。