[Oracle] 사용자, 권한, 롤 관리

BAEZIDDONG·2022년 2월 3일
0
post-thumbnail

1. Schema?

  • 서로 연관된 테이블을 Grouping 한다.

  • 객체의 모음에 이름을 붙인거.

  • ex) ace user 일 때,

	create table [schema(ace)] table_name 
- ace라는 user를 만들고, 그 user의 schema가 생긴다. oracle 12c에서 인스턴스 하나에
  DB 여러개 생성가능. 즉 인스턴스하나 DB여러개 -> 각 DB안에 스키마 여러개 만들기 가능.
  

2. Privilege? Role?

  • Privilege : User에 권한을 줘야해!
  • Role : 특정 권한들의 묶음

특정 sql을 사용할 수 있는 권리
- System Privilege(시스템 권한) : DBA 관리
- Object Privilege(객체 권한) : DBA 혹은 객체 소유자가 관리

3. Example

C:\Users\KOSA> sqlplus system/oracle@localhost:1521/xepdb1
        
  SQL> create user kosa01
	   identified by kosa01;

  SQL> grant create session, create table    /* 시스템 권한 */
       to kosa01;
  SQL> grant select                          /* 객체 권한 */
       on ace.emp
       to kosa01;

  SQL> grant select, insert                  /* 객체 권한 */
       on ace.dept
       to kosa01;

  SQL> revoke create session, create table
       from kosa01;

  SQL> revoke select
       on ace.emp
       from kosa01;

  SQL> revoke select, insert
       on ace.dept
       from kosa01;

  /*Role 활용*/

  SQL> create role dev_role;

  SQL> grant create session, create table
       to dev_role;

  SQL> grant select
       on ace.emp
       to dev_role;

  SQL> grant select, insert
       on ace.dept
       to dev_role;

  SQL> grant dev_role
       to kosa01;


  SQL> revoke create table
       from dev_role;

  SQL> grant create procedure
       to dev_role;
       

4. User 생성 전에 한번 유의할 사항✨

  SQL> select * from dba_tablespaces;
  SQL> select * from dba_users;
  SQL> select distinct privilege from dba_sys_privs order by 1;

TableSpace나 user나 권한 같은 것들 유저 생성전에 확인해 볼 필요성 있음.

profile
악깡버

0개의 댓글