A的schema下新写了一个存储过程test_for_ddl,包里面select了新表TABLE1,如果B用户想使用这个存储过程,你需要赋哪些权呢??
很多朋友可能会认为需要下面2个赋权:
GRANT EXECUTE ON test_for_ddl TO B;
GRANT SELECT ON TABLE1 TO B;
其实不是这样的,只需要GRANT EXECUTE ON test_for_ddl TO B一个就行了,B用户就可以调用A的test_for_ddl,虽然存储过程里面有select可以跑通,但是用户B直接SELECT * FROM A.TABLE1时又会报错,需要你单独赋查询TABLE1的权限给B.