我们希望授予用户execute
一个存储过程,该存储过程将访问某些表,但阻止同一用户对相同表执行直接查询。存储过程表安全
这是我们目前的型号。用户foo
是存储过程的所有者。它具有对所有必要表格的直接选择,插入,更新和删除权限。存储过程已使用AUTHID CURRENT_USER
创建。 Foo
将其存储过程授予execute
至用户bar
。用户bar
通过上面的授权调用存储过程。根据设计,它无法更改任何存储过程的源代码。它可以通过角色访问必要的表格。
到目前为止,这工作正常。现在我们有了一个新的要求。必须创建一个可以执行存储过程但不能直接对表进行查询的新用户(通过SQLPlus,JDBC,ODBC等)
我看不到任何明显的实现方法。所有建议都欢迎。