SQL> connect / as sysdba
연결되었습니다.
SQL>
SQL> drop user blake cascade;
사용자가 삭제되었습니다.
SQL>
SQL> create user blake identified by ok default tablespace woongs;
사용자가 생성되었습니다.
SQL>
SQL> grant connect to blake;
권한이 부여되었습니다.
SQL>
SQL> connect scott/ok
연결되었습니다.
SQL>
SQL> delete from dept where deptno < 10;
2 행이 삭제되었습니다.
SQL>
SQL> commit;
커밋이 완료되었습니다.
SQL>
SQL> drop procedure create_dept;
프로시저가 삭제되었습니다.
SQL>
SQL> CREATE PROCEDURE create_dept (
2 my_deptno NUMBER,
3 my_dname VARCHAR2,
4 my_loc VARCHAR2) -- 디폴트값 AUTHID DEFINER (정의자권한)
5 AS
6 BEGIN
7 INSERT INTO dept VALUES (my_deptno, my_dname, my_loc);
8 END;
9 /
프로시저가 생성되었습니다.
SQL>
SQL> grant execute on create_dept to blake;
권한이 부여되었습니다.
SQL>
SQL> connect blake/ok
연결되었습니다.
SQL>
SQL> exec scott.create_dept(1,'definder-right','blake');
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL>
SQL>
SQL> --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
SQL>
SQL> connect / as sysdba
연결되었습니다.
SQL>
SQL> drop user blake1 cascade;
사용자가 삭제되었습니다.
SQL>
SQL> create user blake1 identified by ok default tablespace woongs;
사용자가 생성되었습니다.
SQL>
SQL> grant connect, resource to blake1;
권한이 부여되었습니다.
SQL>
SQL> connect scott/ok
연결되었습니다.
SQL>
SQL> drop procedure create_dept1;
프로시저가 삭제되었습니다.
SQL>
SQL> CREATE PROCEDURE create_dept1 (
2 my_deptno NUMBER,
3 my_dname VARCHAR2,
4 my_loc VARCHAR2) AUTHID CURRENT_USER --호출자권한
5 AS
6 BEGIN
7 INSERT INTO dept VALUES (my_deptno, my_dname, my_loc);
8 END;
9 /
프로시저가 생성되었습니다.
SQL>
SQL> grant execute on create_dept1 to blake1;
권한이 부여되었습니다.
SQL>
SQL> connect blake1/ok
연결되었습니다.
SQL>
SQL> exec scott.create_dept1(2,'definder-right','blake');
BEGIN scott.create_dept1(2,'definder-right','blake'); END;
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
ORA-06512: "SCOTT.CREATE_DEPT1", 줄 7에서
ORA-06512: 줄 1에서
SQL>
SQL> create table dept as select * from scott.dept where 1=2;
테이블이 생성되었습니다.
SQL>
SQL> exec scott.create_dept1(5,'definder-right','blake1');
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
1 definder-right blake
3 test test
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
6 개의 행이 선택되었습니다.
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
5 definder-right blake1
SQL>