1. 사용자 관리
- 사용자란? 데이터베이스에 접속하여 데이터를 관리하는 계정
- 사용자 관리의 필요성: 업무 분할과 효율, 보안을 고려해 업무에 따라 여러 사용자를 나누어 사용하며 업무별 사용자를 생성한 후에 각 사용자 업무에 맞는 데이터 구조를 만들어 관리할 수 있음
- 데이터베이스 스키마란? 데이터 간 관계, 데이터 구조, 제약조건 등 데이터를 저장 및 관리하기 위해 정의한 데이터베이스 구조의 범위를 그룹단위로 분류한 객체
※ 오라클 데이터베이스에서는 스키마와 사용자를 구별하지 않고 사용하기도 함, 사용자는 데이터를 사용, 관리하기 위해 오라클 데이터베이스에 접속하는 개체를 뜻하고 스키마는 오라클 데이터베이스에 접속한 사용자와 연결된 객체를 의미
- 사용자 생성:
CREATE USER 사용자 이름(필수) IDENTIFIED BY 패스워드(필수) DEFAULT TABLESPACE 테이블 스페이스 이름(선택) TEMPORARY TABLESPACE 테이블 스페이스(그룹) 이름(선택) QUOTA 테이블 스페이스크기 ON 테이블 스페이스 이름(선택) PROFILE 프로파일 이름(선택) PASSWORD EXPIRE(선택) ACCOUNT [LOCK/UNLOCK](선택); |
- 사용자 정보 조회
사용자 또는 사용자 소유 객체 정보를 얻기 위해 다음과 같이 데이터 사전 사용
SELECT * FROM ALL_USERS WHERE USERNAME='ORCLSTUDY'; |
SELECT * FROM DBA_USERS WHERE USERNAME='ORCLSTUDY'; |
WHERE OWNER='ORCLSTUDY'; |
- 오라클 사용자의 변경과 삭제
2. 권한 관리
- 시스템 권한이란? 사용자 생성과 정보 수정 및 삭제, 데이터베이스 접근, 오라클 데이터베이스의 여러 자원과 객체 생성 및 관리 등의 권한(ANY 키워드 들어있는권한은 소유자에 상관없이 사용 가능)
권한 분류 | 시스템 권한 | 설명 |
USER(사용자) | CREATE USER | 사용자 생성 권한 |
ALTER USER | 생성된 사용자의 정보 수정 권한 | |
DROP USER | 생성된 사용자의 삭제 권한 | |
SESSION(접속) | CREATE SESSION | 데이터베이스 접속 권한 |
ALTER SESSION | 데이터베이스 접속 상태에서 환경 값 변경 권한 | |
TABLE(테이블) | CREATE TABLE | 자신의 테이블 생성 권한 |
CREATE ANY TABLE | 임의의 스키마 소유 테이블 생성 권한 | |
ALTER ANY TABLE | 임의의 스키마 소유 테이블 수정 권한 | |
DROP ANY TABLE | 임의의 스키마 소유 테이블 삭제 권한 | |
INSERT ANY TABLE | 임의의 스키마 소유 테이블 데이터 삽입 권한 | |
UPDATE ANY TABLE | 임의의 스키마 소유 테이블 데이터 수정 권한 | |
DELETE ANY TABLE | 임의의 스키마 소유 테이블 데이터 삭제 권한 | |
SELECT ANY TABLE | 임의의 스키마 소유 테이블 데이터 조회 권한 | |
INDEX(인덱스) | CREATE ANY INDEX | 임의의 스키마 소유 테이블의 인덱스 생성 권한 |
ALTER ANY INDEX | 임의의 스키마 소유 테이블의 인덱스 수정 권한 | |
DROP ANY INDEX | 임의의 스키마 소유 테이블의 인덱스 삭제 권한 | |
VIEW(뷰) | (생략) | 뷰와 관련된 여러 권한 |
SEQUENCE(시퀀스) | (생략) | 시퀀스와 관련된 여러 권한 |
SYNONYM(동의어) | (생략) | 동의어와 관련된 여러 권한 |
PROFILE(프로파일) | (생략) | 사용자 접속 조건 지정과 관련된 여러 권한 |
ROLE(롤) | (생략) | 권한을 묶은 그룹과 관련된 여러 권한 |
이하 생략 |
- 시스템 권한 부여
GRANT [시스템권한] TO [사용자 이름/롤(role)DLFMA/PUBLIC] [WITH ADMIN OPTION]; |
[시스템권한] : 오라클 데이터베이스에서 제공하는 시스템 권한 지정, 한번에 여러 권한 부여하려면 쉼표(,)로 구분하여 여러개 명시(필수) |
[사용자 이름/롤(role)이름/PUBLIC]: 권한을 부여하려는 대상 지정, 사용자 이름, 롤으로 지정할 수 있음/ 여러 사용자 또는 롤을 지정하려면 쉼표(,)로 구분, PUBLIC은 현재 오라클 데이터베이스의 모든 사용자에게 권한을 부여하겠다는 의미(필수) |
[WITH ADMIN OPTION] : 현재 GRANT문을 통해 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한도 함께 부여 받음/ 현재 사용자가 권한이 사라져도, 권한을 재부여한 다른 사용자의 권한은 유지됨(선택) |
![]() |
- RESOURCE키워드는 오라클 데이터베이스에서 제공하는 롤(role)중 하나/ 여러 권한을 하나의 이름으로 묶어 권한 부여 관련 작업을 간편하게 하려고 사용함 - RESOURCE 롤: 사용자를 생성할 때 사용 테이블스페이스의 영역을 무제한 사용가능(UNLIMITED TABLESPACE)하게 해주는 권한이 포함되어 있음 - 단, 엄밀한 관리가 필요한 경우 적절치 않으므로 사용자 생성 및 수정할때 QUOTA절로 사용 영역을 제한하기도 한다. EX) ALTER USER ORCLSTUDY QUOTA 2M ON USERS; |
- 시스템 권한 취소
REBOKE [시스템권한] FROM [사용자 이름/롤(Role)이름/PUBLIC]; |
- 객체 권한이란? 특정 사용자가 생성한 테이블,인덱스,뷰,시퀀스 등과 관련된 권한[ex) SCOTT 소유 테이블에 ORCLSTUDY 사용자가 SELECT, INSERT 등 작업가능하도록 허용하는 것]
객체 권한 분류 | 객체 권한 | 설명 |
TALBLE(테이블) | ALTER | 테이블 변경 권한 |
DELETE | 테이블 데이터 삭제 권한 | |
INDEX | 데이블 인덱스 생성 권한 | |
INSERT | 테이블 데이터 삽입 권한 | |
REFERENCES | 참조 데이터 생성 권한 | |
SELECT | 테이블 조회 권한 | |
VIEW(뷰) | DELETE | 뷰 데이터 삭제 권한 |
INSERT | 뷰 데이터 삽입 권한 | |
REFERENCES | 참조 데이터 생성 권한 | |
SELECT | 뷰 조회 권한 | |
UPDATE | 뷰 데이터 수정 권한 | |
SEQUENCE(시퀀스) | ALTER | 시퀀스 수정 권한 |
SELECT | 시퀀스의 CURRVAL과 NEXTVAL 사용 권한 | |
PROCEDURE(프로시저) | (생략) | 프로시저 관련 권한 |
FUNTION(함수) | (생략) | 함수 관련 권한 |
PACKAGE(패키지) | (생략) | 패키지 관련 권한 |
이하 생략 |
- 객체 권한 부여
GRANT [객체권한/ALL PRIVILEGES] ON[스키마.객체 이름] TO[사용자 이름/롤(Role)이름/PUBLIC] [WITH GRANT OPTION]; |
[객체권한/ALL PRIVILEGES]: 오라클 데이터베이스에서 제공하는 객체 권한 지정, 한 번에 여러 종류 권한 부여하려면 쉼표(,)로 구분하여 권한을 여러 개 명시/ ALL PRIVILEGES는 객체의 모든 권한을 부여함을 의미(필수) |
[스키마.객체 이름]: 권한을 부여할 대상 객체 명시(필수) |
[사용자 이름/롤(Role)이름/PUBLIC]: 권한을 부여하려는 대상 지정, 사용자 이름 지정 혹은 롤(Role)을 지정, 여러사용자 혹은 롤을 지정할 경우 쉼표(,)로 구분, PUBLIC은 모든 사용자에게 권한을 부여하겠다는 의미(필수) |
[WITH GRANT OPTION]: 현재 GRANT문을 통해 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한도 함께 부여 받음/ 현재 사용자가 권한이 사라져도, 권한을 재부여한 다른 사용자의 권한도 사라짐(선택) |
- 객체 권한 취소
REBOKE [시스템권한/ALL PRIVILEGES](필수) ON [스키마.객체 이름](필수) FROM [사용자 이름/롤(Role)이름/PUBLIC](필수) [CASCADE CONSTRAINS/FORCE](선택); |
3. 롤 관리
롤이란? 여러 종류의 권한을 묶어 놓은 그룹, 여러 권한을 한 번에 부여하고 해제할 수 있으므로 권한 관리효율을 높일 수 있음
- 사전 정의된 롤(predefined roels)
○ CONNECT 롤: CREATE SESSION 권한
○ RESOURCE 롤: 테이블, 시퀀스를 비롯한 여러 객체를 생성할 수 있는 기본 시스템 권한을 묶은 롤
CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER, CREATE OPERATOR,CREATE INDEXTYPE, CREATE TABLE |
○ DBA 롤: 데이터베이스를 관리하는 시스템 권한을 대부분 가지고 있음
- 사용자 정의 롤(user roles): 필요에 의해 직접 권한을 포함시킨 롤을 뜻함
롤 생성 절차 1) CREATE ROLE문으로 롤 생성 2) GRANT명령어로 생성한 롤에 권한 포함시킴 3) GRANT명령어로 권한이 포함된 롤을 특정 사용자에게 부여 4) REVOKE명령어로 롤을 취소시킴 |
○ 롤 생성과 권한 포함
○ 부여된 롤 취소 및 삭제
'공부 > 데이터베이스' 카테고리의 다른 글
[오라클로 배우는 데이터베이스 입문] 16. PL/SQL 기초 (0) | 2022.04.07 |
---|---|
[오라클로 배우는 데이터베이스 입문] 15. 연습문제 (0) | 2022.04.05 |
[오라클로 배우는 데이터베이스 입문] 14. 연습문제 (0) | 2022.04.04 |
[오라클로 배우는 데이터베이스 입문] 14. 제약 조건 종류 (0) | 2022.04.03 |
[오라클로 배우는데이터베이스 입문] 13. 연습문제 (0) | 2022.03.31 |