c# - 检查只读查询字符串

标签 c# sql postgresql

我正在创建一个 postgreSQL 数据库阅读器,其中还包括一个供用户键入他们自己的查询的方法。我想通过检查键入的查询是否包含任何修改代码来保护数据库。这是我的支票:

    private bool chech_unwanted_text(string query)
    {
        if (query.Contains("DELETE") || query.Contains("delete") || query.Contains("CREATE") || 
          query.Contains("create") || query.Contains("COPY") || query.Contains("copy") || 
          query.Contains("INSERT") || query.Contains("insert") || query.Contains("DROP") || 
          query.Contains("drop") || query.Contains("UPDATE") || query.Contains("update") || 
          query.Contains("ALTER") || query.Contains("alter"))
        {
            return false;
        }
        else return true;
    }

这是检查编辑安全查询的正确方法还是有其他更可靠的方法来实现此目的?

我知道如何向用户授予权限,但这不起作用,因为我没有 super 用户帐户。

最佳答案

您应该使用仅具有数据库读取权限的帐户来处理此问题,而不是通过检查查询来处理。大多数 DBMS 都有特权机制来处理这种事情,PostgreSQL 肯定有。

关于c# - 检查只读查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8787044/

相关文章:

c# - 在 Aspx.cs 中调用函数并更改下拉框

javascript - 如何将json对象保存为文件服务器端?

mysql - 连接两个表后如何显示5个最大值?

postgresql - 从 jsonb 数组包含具有特定属性的元素的表中选择

mysql - SQL 查询解释的结果是否取决于数据库的大小?

c# - 在 PostgreSQL 中读取 bytea 数据很慢

c# - 参数化插入多行

c# - 从列表中检索第一项

sql - 我可以通过给出 regexp_substr 的查询来创建选择组吗?

sql查询-如何分别计算一行中的值?