Data Base_Oracle/SQL

SQL_PRIVILEGE 개요 & 계정 관리 (1)

pathas 2020. 1. 10. 16:41

Privilege_권한

관리자로부터 부여받는 계정별 작업 가능 범위

Privilege 종류

  1. 시스템 권한 : 관리자가 주로 작업
    ex) 계정 관리(생성, 수정, 삭제), 공용 동의어 생성 등
  2. 객체 권한 : 각 계정별로 관리
    ex) 테이블, 뷰, 시퀀스 사용 권한

SYSTEM PRIVILEGE _ DATA DICTIONARY

※ system_privilege_map
일반 계정에서는 조회가 불가능하며 시스템 권한의 종류가 담겨있는 Oracle 자체 테이블

PRIVILEGE NAME PROPERTY
-3 ALTER SYSTEM 0
-4 AUDIT SYSTEM 0
-5 CREATE SESSION 0
... ... ...

SYSTEM PRIVILEGE 종류

권한 설명
CREATE SESSION 로그인 권한
CREATE USER 계정 생성 권한
ALTER USER 계정 변경 권한 : 암호변경, 만료,
lock / unlock, etc.
DROP USER 계정 삭제 권한
CREATE TABLE 테이블 생성 권한,
resource 대신 사용할 수 있음,
alter table, drop table이 동시에 부여됨
CREATE SYNONYM 동의어 생성 권한
SYSDBA 관리자의 모든 권한 집합, *ROLE
권한 설명
CREATE PUBLIC SYNONYM 공용동의어 생성 권한
DROP PUBLIC SYNOYNYM 공용동의어 삭제 권한
CREATE VIEW 뷰 생성 권한
CREATE ROLE *ROLE 생성 권한

*ROLE : 권한들이 들어가 있는 그룹

ex) create session은 connect에 포함되어 있는데, connect는 role이라고 함

 

※ 일반적으로 ~ create 권한에 alter와 drop이 포함되어 있음

계정 관리_SYSTEM PRIVILEGE

PASSWORD EXPIRE _ 계정 비밀번호 만료

생성한 계정이 로그인할 때 암호를 재설정할 수 있도록 하는 조치

§ 형식

[ SQL> alter user 계정명 password expire; ]

 

※ 부여한 암호가 만료되도록 하는 것

# 예제

▶ hong/h1234 로 만든 계정에 기간 만료 설정
[ SQL> alter user hong password expire;
사용자가 변경되었습니다. ]

 

▷ hong/h1234로 로그인
[ SQL> conn hong/h1234
ERROR:
ORA-28001: the password has expired

hong에 대한 비밀번호를 변경합니다.
새 비밀번호: 1234
새 비밀번호 다시 입력: 1234
비밀번호가 변경되었습니다.
연결되었습니다. ]

 

※ ORA-28001 :해당 암호의 기간이 만료됐기 때문에 발생하는 에러

※ 비밀번호를 입력해도 화면에는 표시되지 않기 때문에 주의해야 함


데이터베이스를 관리하기 위해서는 계정마다 적절한 권한을 부여하는 것이 아주 중요하기 때문에

권한과 앞으로 다룰 ROLE에 대해 자세히 이해하는 것이 필요하겠습니다.