데이터베이스 보안
- 모든 사용자가 데이터베이스에 접근하거나 수정이 가능하다면 보안상 큰 문제가 발생한다.
- 각 사용자마다 최소한의 권한을 주어 데이터베이스의 보안을 유지해야 한다.
SYS
- SYSDBA 권한을 가짐 (Oracle 시스템 유지 관리 계정)
- Data Dictionary의 소유자(Owner) 계정
- 새로운 데이터베이스의 생성과 기존 데이터베이스의 삭제 가능
SYSTEM
- SYSOPER 권한을 가짐(Oracle 데이터베이스 유지 관리 계정)
- 어떤 데이터베이스를 운영하기 위한 계정
- 새로운 데이터베이스의 생성이나 기존 데이터베이스의 삭제는 불가능
- 오라클 관리자 계정으로 작업하지 않고, 새로운 사용자 계정을 만들어서 사용해야 한다.
- 관리자(DBA) 권한을 가진 사용자는 새로운 사용자를 생성할 수 있다.
CREATE USER
쿼리문 이용
- 관리자(DBA) 권한을 가진 사용자는 기존 사용자를 삭제할 수 있다.
- 접속한 사용자 자신을 삭제할 수는 없다.
DROP USER
쿼리문 이용
CREATE USER SCOTT IDENTIFIED BY TIGER;
DROP USER SCOTT;
DROP USER SCOTT CASCADE;
사용자가 데이터베이스 객체(테이블 등)를 가지고 있는 경우 CASCADE
옵션이 필요하다.
- 데이터베이스에 저장된 정보를 요약한 정보(메타 데이터)
- 데이터베이스 사용자, 테이블, 인덱스 등의 정보를 테이블 및 뷰의 형태로 제공
- 데이터베이스 사용자 목록을 확인할 수 있는 데이터 사전이 존재한다.
- 사용자 유형별로 별도로 관리한다.
DBA_
: 데이터베이스 전체에 포함된 모든 객체에 대한 정보
USER_
: 자신이 생성한 모든 객체에 대한 정보
ALL_
: 자신이 생성한 모든 객체 + 다른 사용자가 생성한 객체 정보 중 볼 수 있는 정보
X$_
: 데이터베이스 성능 분석 및 통계 정보
V$_
: X$_의 뷰(View)
DBA_USERS
: 데이터베이스 전체 사용자 정보
USER_USERS
: 자신이 생성한 사용자 정보
ALL_USERS
: 자신이 생성한 사용자 + 다른 사용자가 생성한 사용자
DESC DBA_USERS;
→ DESC : DESCRIBE 명령과 동일하다.
SELECT USERNAME FROM DBA_USERS;
SELECT
칼럼 FROM
테이블CONNECT
: 데이터베이스 접속 권한
RESOURCE
: 기본적인 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성, 변경, 삭제할 수 있는 권한
DBA
: 데이터베이스 관리자 권한
관리자(DBA) 권한을 가진 사용자는 다른 사용자의 권한을 조정할 수 있다.
GRANT
: 권한 부여
REVOKE
: 권한 취소
GRANT CONNECT TO SCOTT;
→ SCOTT 계정에게 접속(CONNECT) 권한 부여
GRANT CONNECT, RESOURCE TO SCOTT;
→ 접속을 위한 CONNECT 권한과 객체 사용을 위한 RESOURCE 권한 모두 부여
GRANT DBA TO SCOTT;
→ SCOTT 계정에게 관리자(DBA) 권한 부여
REVOKE CONNECT FROM SCOTT;
→ SCOTT 계정의 접속(CONNECT) 권한 취소
REVOKE CONNECT, RESOURCE FROM SCOTT;
→ 접속을 위한 CONNECT 권한과 객체 사용을 위한 RESOURCE 권한 모두 취소
REVOKE DBA FROM SCOTT;
→ SCOTT 계정의 관리자(DBA) 권한 취소