What would you suggest to the PL/SQL developers to achieve this?

The HR user creates a stand-alone procedure as follows and grants the EXECUTE privilege on the
procedure to many database users:
CREATE OR REPLACE PROCEDURE create_dept ( v_deptno NUMBER, v_dname
VARCHAR2, v_mgr NUMBER, v_loc NUMBER)
BEGIN
INSERT INTO hr.departments VALUES (v_deptno, v_dname, v_mgr, v_loc);
END;
The users having permission to execute the procedure are able to insert records into the
DEPARTMENTS table even though they do not have the INSERT privilege on the table. You want only
those users who have privileges on the DEPARTMENTS table to be able to execute the procedure
successfully. What would you suggest to the PL/SQL developers to achieve this?

The HR user creates a stand-alone procedure as follows and grants the EXECUTE privilege on the
procedure to many database users:
CREATE OR REPLACE PROCEDURE create_dept ( v_deptno NUMBER, v_dname
VARCHAR2, v_mgr NUMBER, v_loc NUMBER)
BEGIN
INSERT INTO hr.departments VALUES (v_deptno, v_dname, v_mgr, v_loc);
END;
The users having permission to execute the procedure are able to insert records into the
DEPARTMENTS table even though they do not have the INSERT privilege on the table. You want only
those users who have privileges on the DEPARTMENTS table to be able to execute the procedure
successfully. What would you suggest to the PL/SQL developers to achieve this?

A.
Create the procedure with definer’s right.

B.
Create the procedure with invoker’s right.

C.
Grant the EXECUTE privilege with GRANT OPTION on the procedure to selected users.

D.
Create the procedure as part of a PL/SQL package and grant the EXECUTE privilege on the package
to selected users.



Leave a Reply 1

Your email address will not be published. Required fields are marked *


jean

jean

The Invoker must have right to the table to execute the procedure.