我正在创建一个 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/