case식 / decode함수 / DCL 권한유형

gummy·2023년 1월 30일
0

국비일지

목록 보기
25/30

230130 월요일

📚 case식

               (=) 내포
case 좌변 when 우변 then 반환할 값
             [when 우변n then 반환할 값n => n번 나열 가능
             else default값] => 한번만 가능
end "alias"

📚 case 표현식

     좌변 비교연산자(=,>,in,between등...) 우변
case when 조건문 then 반환할값
               조건문 then 반환할값
               else default값
end "alias"

📚 decode 함수

함수 → f(x, y, ..., n)

(=) 내포
decode( 좌변, 우변, 반환할값
                 [ , 우변n, 반환할값n ]
                 [ , default값 ] )

📚 SQL구문 유형

  1. DQL(데이터질의어) : select
  2. DML(데이터조작어) : insert, update, delete
                                  → commit, rollback 결정해야함.
  3. DDL(데이터정의어) : create, alter, drop, truncate
                                  → autocommit 내포함.
  4. DCL(데이터제어어) : grant, revoke
                                  → autocommit 내포함.

DCL(데이터제어어)

📚 권한 유형

1. System 권한

  • DB를 조작할 수 있는 권한

  • System 권한의 종류가 100개 정도 된다.
    create session
    create user
    create table
    create view
    create sequence
    ...

  • 소유자 : DBA (sys,system)

  • 모든 System 권한은 DBA가 소유한다.

  • System 권한 부여

    grant 부여할 권한
    to 유저명;

  • create table
    → table과 index를 생성/운영할 수 있는 권한

    👉 table 생성 가능

    👉 index 생성가능

    🚨 view 생성권한을 부여하지 않았기 때문에 view 생성 불가능

  • 비밀번호 변경

    alter user 유저명
    identified by 변경할 비밀번호;

  • System 권한 회수

    revoke 회수할 권한
    from 유저명;

🚨 테이블 생성 권한을 회수 했기 때문에 테이블 생성 불가능

❗ 하지만 그 전에 만들었던 테이블은 남아있다!

2. Object 권한

  • Object를 조작할 수 있는 권한

  • Object 권한의 종류 다양하다.
    hr 소유의 employees 테이블을 사용 = hr.employees
    hr.employees → select, insertm update, delete
    hr.departments → select, insertm update, delete
    scott.members → select, insertm update, delete
    ...

  • 소유자 : Object 소유자

  • 모든 Object 권한은 Object의 주인이 소유한다.

🚨 권한을 부여받지 않아서 select 불가능
🙆‍♀️ hr에 접속해서 grant 해줘야한다.

  • Object 권한 부여

    grant 부여할 권한
    on 오브젝트명
    to 권한을 부여받을 유저명;

👉 test에서 select 가능

  • Object 권한 회수

    revoke 회수할 권한
    on 오브젝트명
    from 권한을 회수할 유저명;

🚨 회수한 update 사용 불가능

0개의 댓글