0

我正在编写一个简单的实用程序,它允许我们的用户在数据库上运行简单的选择 SQL 语句来检索他们需要的数据。只是一个文本框和一个按钮,当他们单击按钮时,它将在列表中显示查询结果。

我遇到的问题是我只希望他们能够运行 SELECT 语句。我不希望执行任何编辑语句,即更新、插入、删除、删除等。

有没有一种简单的方法来解析一个 sql 字符串以确保它只输入一个只读的 select 语句?

4

2 回答 2

0

处理这个问题的最好方法是创建一个只有有限权限的用户。

如果您想允许用户从所有表中读取数据,那么您可以采用 Steve D 已经建议的方法。

如果您想允许用户仅从某些表而不是所有表中读取数据,那么您需要创建一个仅具有“公共”角色的用户,然后对特定表进行 GRANT SELECT。

登录属性

确保用户仅在此处为给定数据库选择了“公共”

然后只需对所有表执行此查询

grant select on <schema>.<table> to <user>
于 2013-07-26T12:29:10.407 回答
0

更好的方法是使用 sql 权限。作为数据阅读器,您的用户将只能选择。 exec sp_addrolemember db_datareader, <user>

于 2013-07-26T06:59:58.473 回答