붓, 그리다
사용권한 : 객체 권한 본문
[객체권한]
- 오라클의 객체 권한(테이블, 뷰, 시퀀스, 시노님, 인덱스,,,)
- 계정(소유자)이 우선순위
1) 객체의 권한 종류를 조회하는 SQL 문장 : tabe_privilege_map
*시스템권한 테이블 : system_privilege_map
select * from table_privilege_map;
PRIVILEGE NAME
---------- ----------------------------------------
0 ALTER
1 AUDIT
2 COMMENT : 주석(테이블 설계 시 exerd 툴을 사용할 때)
3 DELETE : 삭제
4 GRANT : 권한 부여
5 INDEX
6 INSERT : 데이터 삽입
7 LOCK
8 RENAME : 이름변경(테이블이름, 필드명)
9 SELECT
10 UPDATE
PRIVILEGE NAME
---------- ----------------------------------------
11 REFERENCES
12 EXECUTE : select to_char(~) from dual(실행권한)
16 CREATE
17 READ
18 WRITE
20 ENQUEUE
21 DEQUEUE
22 UNDER
23 ON COMMIT REFRESH
24 QUERY REWRITE
26 DEBUG
PRIVILEGE NAME
---------- ----------------------------------------
27 FLASHBACK : 데이터 복구에 관련된 명령어(flashback 기술)
28 MERGE VIEW
29 USE
30 FLASHBACK ARCHIVE
26 개의 행이 선택되었습니다.
권한주기 : 테이블(DML(insert, update,,) select, 뷰(execute),,,
형식) 테이블에 권한부여
grant 권한종류,,
on 테이블명
to 적용 게정명
[with grant option] // 위임
Q15. 관리자가 계정생성(test2, test3, test4), 권한주기(connect, resource)
EX) test3가 관지라권한을 얻고 test4에게 권한(select, insert, update)을 위임한다.
나중에 test3에게 권한을 회수하였을 때 test4가 위임받은 권한이 유지되는가?
1) 계정생성/권한주기
SQL> conn sys/sys12345 as sysdba
연결되었습니다.
SQL> create user test2 identified by test2;
사용자가 생성되었습니다.
SQL> create user test3 identified by test3;
사용자가 생성되었습니다.
SQL> create user test4 identified by test4;
사용자가 생성되었습니다.
SQL> grant connect, resource to test2, test3, test4;
권한이 부여되었습니다.
2) 소유자(scott)가 test3 계정에게 테이블(b_dept2) 권한 위임하기
SQL> conn scott/tiger
연결되었습니다.
SQL> grant select, insert, update
2 on b_dept2
3 to test3
4 with grant option;
권한이 부여되었습니다.
3) test3가 test2에게 insert 권한 부여하기
SQL> conn test3/test3
연결되었습니다.
SQL> grant insert
2 on scott.b_dept2
3 to test2;
권한이 부여되었습니다.
4) test3가 test4에게 select, update 권한 부여하기
SQL> grant select, update
2 on scott.b_dept2
3 to test4;
권한이 부여되었습니다.
5) test4 권한 확인하기 : deptno=60의 loc=DALLAS로 변경
update scott.b_dept2 set loc='DALLAS'
where deptno=60;
SQL> update scott.b_dept2 set loc='DALLAS'
2 where deptno=60;
1 행이 갱신되었습니다.
SQL> select * from scott.b_dept2;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 SUPPORT KWANGJU
60 TESTING DALLAS
70 TESTING2 BUSAN
80 TEXTING3 SEOUL
90 TESINT4 SUWON
9 개의 행이 선택되었습니다.
Q16. 위임권한(양도)
EX) scott이 test3에게 부여한 권한을 회수 할 경우, test3로부터 받은 test4의 권한은 유지되는가?
1) test3 권한 회수
SQL> conn scott/tiger
연결되었습니다.
SQL> revoke select, insert, update
2 on b_dept2
3 from test3;
권한이 취소되었습니다.
2) test4 권한 확인
SQL> conn test4/test4
연결되었습니다.
SQL> select * from scott.b_dept2;
select * from scott.b_dept2
*
1행에 오류:
ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
-> scott이 test3에게 위임한 권한을 회수할 경우, 양도받은 test4의 권한도 회수당한다.
-> 소유자(scott)가 test3에게 테이블권한(select, insert, update) 권한 부여, test3가 test4 계정에게 부여받은 권한의 일부(select, update)를 줘도 자기권한(test3)을 회수당하면 양도한 계정(test4)도 같이 회수 당한다.
'Oracle' 카테고리의 다른 글
테이블스페이스 (0) | 2017.06.16 |
---|---|
데이터 복원 flashback (0) | 2017.06.16 |
사용권한 : 시스템 권한(Lock, Role) (0) | 2017.06.16 |
동의어(synonym) ★ (0) | 2017.06.16 |
인덱스, 시퀀스 (0) | 2017.06.16 |
Comments