In your multitenant container database (CDB) that contains pluggable databases (PDBs), the
hr user executes the following commands to create and grant privileges on a procedure:
CREATEORREPLACEPROCEDUREcreate_test_v(v_emp_idNUMBER,v_enameVARCHAR
2,v_SALARYNUMBER,v_dept_idNUMBER)
BEGIN
INSERT INTO hr.test VALUES (v_emp_id, v_ename, v salary, v_dept_id);
END;
/
GRANT EXECUTE ON CREATE_TEST TO John, jim, smith, king;
How can you prevent users having the execute privilege on the create_test_v procedure
from inserting values into tables on which they do not have any privileges?
A.
Create the create_test procedure with definer’s rights.
B.
Grant the execute privilege to users with grant option on the create_test procedure.
C.
Create the create_test procedure with invoker’s rights.
D.
Create the create_test procedure as part of a package and grant users the execute
privilege on the package.
C is correct
You can control access to privileges that are necessary to run user-created procedures by using definer’s rights, which execute with the privileges of the owner, or with invoker’s rights, which execute with the privileges of the user running the procedure.
C
C