不是不能用别的模式下的表,而是因为ORACLE不允许在过程中使用未经显式授权的对象.
对象授权有两种模式,显式和隐式:
显式授权是直接用GRANT语句进行授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO USER2;
而隐式授权则是通过ROLE来授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO ROLE1;
CONN SYSTEM
GRANT ROLE1 TO USER2;SYSTEM拥有SELECT ALL TABLE但是并没有被显式地授权访问该对象.所以你要做的就是:
CONN DOCMAN
GRANT SELECT ON STAFFINFO TO USERxxx;
对象授权有两种模式,显式和隐式:
显式授权是直接用GRANT语句进行授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO USER2;
而隐式授权则是通过ROLE来授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO ROLE1;
CONN SYSTEM
GRANT ROLE1 TO USER2;SYSTEM拥有SELECT ALL TABLE但是并没有被显式地授权访问该对象.所以你要做的就是:
CONN DOCMAN
GRANT SELECT ON STAFFINFO TO USERxxx;
对象授权有两种模式,显式和隐式:
显式授权是直接用GRANT语句进行授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO USER2;
而隐式授权则是通过ROLE来授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO ROLE1;
CONN SYSTEM
GRANT ROLE1 TO USER2;SYSTEM拥有SELECT ALL TABLE但是并没有被显式地授权访问该对象.所以你要做的就是:
CONN DOCMAN
GRANT SELECT ON STAFFINFO TO USERxxx;
对象授权有两种模式,显式和隐式:
显式授权是直接用GRANT语句进行授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO USER2;
而隐式授权则是通过ROLE来授权,如:
CONN USER1
GRANT SELECT ON TABLE1 TO ROLE1;
CONN SYSTEM
GRANT ROLE1 TO USER2;SYSTEM拥有SELECT ALL TABLE但是并没有被显式地授权访问该对象.所以你要做的就是:
CONN DOCMAN
GRANT SELECT ON STAFFINFO TO USERxxx;