ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL 사용자,권한,롤 관리
    DataBase/Oracle 2023. 9. 5. 12:08

     

    1. 사용자 관리 

     

    1.1 사용자란?

     

     - 오라클 DB로 새로운 서비스를 구축한다면, 테이블을 비롯한 여러 객체가 필요할 것이다.

     - 오라클 데이터 베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자로 표현한다.

     - 사용자 관리가 필요한 이유는 여러 종류의 서비스를 한 사용자가 관리하기에는 너무 방대하다. 따라서 업무 분할 효율 보안 등등을 고려하여 업무에 따라 여러 사용다를 나눈다.

    - 오라클에서는 테이블,인덱스,뷰 등 여러 객체가 사용자 별로 생성되므로, 업무별 사용자를 생성한 후 각 사용자 업무에 맞는 데이터 구조를 만들어서 사용할 수 있다.

     

    1.2 데이터베이스 스키마란?

     

    - 데이터베이스에서 데이터 간 관계, 데이터 구조, 제약 조건 등 데이터를 저장 및 관리하기 위해 정의한 데이터베이스 구조의 범위를 스키마를 통해 그룹 단위로 분류합니다.

    - 오라클에서는 스키마와 사용자를 구별하지 않고 사용하기도 한다. 

    - 사용자는 데이터 사용 및 관리하기 위해 DB에 접속하는 개체

    - 스키마는 오라클 데이터 베이스에 접속한 사용자와 연결된 객체를 의미합니다.

     

    EX) 한 사용자가 접속 이 사용자가 생성한 테이블,뷰,제약조건,인덱스,시퀀스 등등 해당 계정으로 만든 모든 객체는 해당 사용자의 스키마이다.

     

    1.3 사용자 생성 

     

     - 오라클에서 CREATE USER문을 통해 사용자를 생성한다.

     - 사용자 계정을 만들려면, 계정 생성 권한 필요 (SYS)

     - 계정을 만들 때 아무런 권한을 주지 않으면, 새로 생성한 계정으로 접속이 불가 

     - 최소 CREATE SESSION 권한을 부여받아야 데이터 베이스에 접속할 권한을 부여받고 연결 가능 

     

    1.4 사용자 정보 조회

     

    - 아래와 같은 데이터 사전을 통해 사용자 정보 조회할 수 있다.

    SELECT * FROM ALL_USERS
    SELECT * FROM DBA_USERS
    SELECT * FROM DBA_OBJECTS

     

    1.5 오라클 사용자 변경 및 삭제 

     

    오라클 사용자 변경 

    - 생성은 CREATE 변경은 ALTER USER문 사용

    ALTER USER ORC IDENTIFIED BY '새비번';

    사용자 삭제 

    DROP USER 유저명
    
    -- 사용자와 객체 모두 삭제 
    DROP USER 유저명 CASCADE;

     

     

    2. 권한관리

     

    - 데이터를 안전하게 보관하기 위해 특정 사용자에게 특정 권한만을 부여할 수 있다. (DB접속 허가권한 같은 것)

    - 오라클에 권한은 시스템권한과 객체권한이 있다. 

     

    2.1 시스템 권한이란

     

    - 사용자 생성, 정보 수정 및 삭제, DB접근, 데이터 베이스 여러 자원과 객체 생성 및 관리 등의 권한 

    - ANY 키워드가 들어있는 권한은 소유자에 상관없이 사용 가능한 권한을 의미한다.

     

    * 권한들은 P403참고

     

    - 시스템 권한 부여 

    GRANT CREATE SESSION TO 사용자
    
    GRANT [시스템 권한] TO [사용자/롤이름/PUBLIC]
    [WITH ADMIN OPTION]

    - WITH ADMIN OPTION은 현재 GRANT로 부여받은 권한을 다른 사람에게 부여할 수 있는 권한을 함께 받는 것을 의미 

      최초로 권한을 부여받은 현재 사용자의 권한이 사라져도, 권한을 재부여 받은 다른 사용자의 권한은 유지된다.

     

    - 시스템 권한 취소 

    REVOKE [시스템권한] FROM [사용자명/ROEL이름/PUBLIC]

     

     

    3. 객체 권한이란?

     

    - 특정 사용자가 생성한 테이블,인덱스,뷰,시퀀스 등에 대한 권한이다.

    - 특정 사용자가 소유한 테이블에 대해 다른 사용자가 SELECT나 INSERT 가능하게 해줌

    *권한의 종류는 P 407 참고

     

     

    3.1 객체 권한 부여 

     

    GRANT [객체권한/ALL PRIVILEGES]
    ON [스키마.객체이름]
    TO [사용자명/롤이름/PUBLIC]
    [WITH GRANT OPTION]

     

    - WITH GRANT OPTION은 권한을 부여받은 최초 사용자가 다른 사용자에게 권한을 부여할 수 있는 권한 부여 받음 

      ADMIN과 다르게 최초 권한을 부여받은 사용자의 권한이 사라지면, 다른 사용자에게 재부여된 권한도 함께 사라짐

     

    3.2 객체 권한 취소 

    REVOKE [객체권한/ALL PRIVILEGES]
    ON [스키마.객체명]
    FROM [사용자/롤이름/PUBLIC]
    [CASCADE CONSTRAINTS/ FORCE]

     

     

    4. 롤관리

     

    - 롤이란 여러 권한이 함께 뭉쳐진 것을 의미 권한 그룹이다.

     

    롤에 관련된 내용은 책 내용 참고 (412P)

    'DataBase > Oracle' 카테고리의 다른 글

    SQL - 제약 조건  (0) 2023.09.05
    SQL - 데이터 정의어 (DDL)  (0) 2023.09.04
    SQL - 트랜잭션 제어와 세션  (0) 2023.09.04
    SQL - DML  (0) 2023.09.01
    오라클 sql - 인라인 뷰를 사용한 TOP-N SQL  (0) 2023.09.01
Designed by Tistory.