Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

붓, 그리다

사용권한 : 객체 권한 본문

Oracle

사용권한 : 객체 권한

붓그린 2017. 6. 16. 16:57

[객체권한]

- 오라클의 객체 권한(테이블, 뷰, 시퀀스, 시노님, 인덱스,,,)
- 계정(소유자)이 우선순위


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