【发布时间】:2012-02-14 10:59:08
【问题描述】:
我有一个允许用户执行 SQL 脚本的程序。我有一个用户登录到该程序,但要求防止任何执行,即使它是管理员用户。
我的意思是用户不能修改表等。通常我会建议将所有用户连接设置为只读,但程序中有一个元素需要能够执行 INSERT。
我想检测用户可能执行的关键字,例如/INSERT、UPDATE、ALTER,并希望在某处有一个已定义的列表。
【问题讨论】:
-
Oracle 应该如何知道用户想要执行哪些语句?
-
我不应该阻止用户编写 DROP TABLE 或 INSERT 或 ALTER 或 EXEC
-
UPDATE、DELETE、CREATE 和 TRUNCATE 怎么样?
-
这不是角色的用途吗?为什么你试图通过解析用户 SQL 来控制它?也许我误会你了
-
使登录“用户定义的脚本”通过与应用程序逻辑使用的登录分开执行。然后,应用程序可以使用 StoredProcs 和/或其他控制机制来允许/禁止适当的访问。 “用户定义脚本”登录可以有不同的访问级别,尤其是只读的。
标签: sql sql-server database oracle