콘텐츠로 이동

D-02: 데이터베이스의 불필요 계정을 제거하거나, 잠금설정 후 사용

분류: DBMS

중요도: 상


개요

점검 내용

DBMS에 존재하는 계정 중 DB 관리나 운용에 사용하지 않는 불필요한 계정이 존재하는지 점검

점검 목적

불필요한 계정 존재 유무를 점검하여 불필요한 계정 정보(비밀번호)의 유출 시 발생할 수 있는 비인가자의 DB 접근에 대비되어 있는지 확인하기 위함

보안 위협

DB 관리나 운용에 사용하지 않는 불필요한 계정이 존재할 경우, 비인가자가 불필요한 계정을 이용하여 DB에 접근하여 데이터를 열람, 삭제, 수정할 위험이 존재함

참고

불필요한 계정

SCOTT, PM, ADAMS, CLARK 등의 Demonstration 계정 및 퇴사나 직무 변경등으로 더 이상 사용하지 않는 계정

점검 대상 및 판단 기준

대상

Oracle DB, MSSQL, MySQL, Altibase, Tibero, PostgreSQL, Cubrid 등

판단 기준

✅ 양호: 계정 정보를 확인하여 불필요한 계정이 없는 경우

❌ 취약: 인가되지 않은 계정, 퇴직자 계정, 테스트 계정 등 불필요한 계정이 존재하는 경우

조치 방법

계정별 용도를 파악한 후 불필요한 계정 삭제

조치 시 영향

Demonstration 계정 / Object 사용 불가 / 삭제된 계정 사용 불가

점검 및 조치 사례

Oracle DB

  1. 불필요한 계정 및 Object 삭제
    SQL> DROP USER [삭제할 계정];
    

MSSQL

  1. 불필요한 계정 삭제
    EXEC sp_droplogin '삭제할 계정';
    

MySQL

  1. 불필요한 계정 삭제
    DROP USER '삭제할 계정'@'호스트명 or IP';
    FLUSH PRIVILEGES;
    

Altibase

  1. 모든 사용자 확인
    SELECT * FROM system_.sys_users_;
    
  2. 불필요한 계정 삭제
    DROP USER user_name CASCADE;
    

Tibero

  1. 모든 사용자 확인 Tibero에서는 사용자의 정보를 제공하기 위해 아래 나열된 정적 뷰를 제공하고 있으며, DBA나 일반 사 용자 모두 사용할 수 있다.

    SELECT * FROM all_users;
    SELECT * FROM dba_users;
    SELECT * FROM user_users;
    

    정적 뷰 설명
    ALL_USERS 데이터베이스의 모든 사용자의 기본적인 정보를 조회하는 뷰
    DBA_USERS 데이터베이스의 모든 사용자의 자세한 정보를 조회하는 뷰
    USER_USERS 현재 사용자의 정보를 조회하는 뷰
  2. 불필요한 계정 삭제

    DROP USER user_name CASCADE;
    

PostgreSQL

  1. 모든 사용자 확인
    SELECT * FROM system_.sys_users_;
    -- 명령어 조회 : \du
    
  2. 불필요한 계정 삭제
    DROP ROLE '삭제할 계정';
    

Cubrid

  1. 사용자 계정 목록 확인
    csql> SELECT name, password FROM db_user;
    
  2. 불필요한 계정 삭제
    csql> DROP USER [삭제할 계정];