更新的问题: 我的问题的核心是:由于以下原因,我创建的存储过程(User1)无法从某些特定表(另一个用户(User2)创建的表1)中进行选择:
CREATE OR REPLACE PROCEDURE TEST_SCHEMA.TEST_PROCEDURE(OUT r_count INTEGER)
LANGUAGE SQL
BEGIN
SET r_count = (SELECT COUNT(*) FROM TEST_SCHEMA.TABLE1);
END
好。没有行受到影响 SQLWarning:代码:20480 SQL状态:0168Y ---新定义的对象“ TEST_SCHEMA.TEST_PROCEDURE”被标记为无效,因为它引用了对象“ TEST_SCHEMA.TABLE1” 未定义或无效,或者定义者没有权限 访问它。SQLCODE= 20480,SQLSTATE = 0168Y,DRIVER = 4.22.29
但是,当我在正常查询窗口中从table1中进行选择时,没有问题,因此我认为存储过程中的安全性选项有问题
SELECT COUNT(*) FROM TEST_SCHEMA.TABLE1
表和存储过程的名称是完全限定的。该存储过程由user1创建并执行。授予用户1从表1中选择的特权是组特权。