◈ DCL ◈
• DCL
계정에겐 권한을 부여하거나 회수하는 역할을 가진 언어
DB의 데이터 접근 및 보안을 담당하며 각각의 직원들이 가진 역할에 대해
최소한의 권한만을 부여하여 사용하는 것이 좋음
◈ GRANT ◈
계정에게 권한을 부여하며 시스템 권한과 접근 권한으로 나뉘어 짐
시스템 권한 : 데이터베이스 시스템 자체에 대한 권한으로써 데이터베이스에 접근하거나 스키마에 접근하여 객체를 관리할 수 있는 권한
접근 권한 : 특정 객체들을 조작(DML)할 수 있는 권한
표현법 : GRANT 권한1, 권한2, 권한3, … TO 계정명;
• 시스템 권한 종류
1. CREATE SESSION : 계정 접속 권한
2. CREATE TABLE : 테이블 생성 권한
3. CREATE USER : 계정 생성 권한
4. CREATE SEQUENCE : 시퀀스 생성 권한
5. CREATE INDEX : 인덱스 생성 권한
6. DROP USER : 계정 삭제 권한
7. ALTER SYSTEM : 데이터베이스 시스템 설정 변경 권한
8. …
• 테스트를 위한 계정 생성
CREATE USER webuser IDENTIFIED BY qwer1234;
CREATE USER grantuser IDENTIFIED BY qwer1234;
* 만약 ORA-65095 발생 시 ALTER SESSION SET "_ORACLE_SCRIPT"=true; 실행 후 재시도
• 참고
로그인으로 해버리면 계속 계정을 왓다갓다 해야 하므로 Test Connection… 사용
◈ GRANT - 시스템 권한 ◈
• CREATE SESSION
아래 쿼리를 입력하여 계정 접속 권한 부여 후 다시 시도
GRANT CREATE SESSION TO webuser;
로그인이 잘 되었다면 CREATE TABLE을 사용하여 테이블 생성 해보기
• CREATE TABLE
webuser 계정에게 테이블을 생성할 수 있는 권한 부여
GRANT CREATE TABLE TO webuser;
• 테이블스페이스 용량 할당
아래 쿼리를 사용하여 새로 생성한 webuser 계정에게 테이블 스페이스 용량 할당
ALTER USER webuser DEFAULT TABLESPACE users quota unlimited ON users;
-> webuser 작성한 자리 : 계정명
-> quota unlimited : 용량 제한 없음
-> users 작성한 자리 : 테이블스페이스명
◈ GRANT - 객체 권한 ◈
• 객체 권한
표현법 : GRANT 권한 ON 객체 TO 계정명;
• 참고
webadmin 계정에서 테이블을 생성하고, 접근에 대한 권한은 webuser 계정으로 확인
• webadmin 계정의 테이블 확인하기
webuser 계정으로 접속하여 select 구문을 사용하고 webadmin 계정의 테이블을 확인할 수 있는지 확인
• SELECT 권한 부여
아래 쿼리를 작성하여 webadmin 계정의 employees 테이블을 SELECT할 수 있는 권한을 부여하고 다시 확인 해보기
GRANT SELECT ON webadmin.employees TO webuser;
-> webuser 계정에게 webadmin 계정의 employees 테이블을 SELECT할 수 있는 권한을 주겠다
◈ GRANT - ROLE ◈
• ROLE
필요한 권한들을 하나의 그룹으로 묶어놓고 효율적으로 권한을 관리하기 위한 집합
• 사용 방법
1. 롤 생성 : CREATE ROLE 롤이름
2. 롤 권한 부여 : GRANT 권한 ON 스키마이름.테이블이름 TO 롤이름
3. 사용자에게 롤 권한 부여 : GRANT 롤이름 TO 계정명
4. 롤 권한 회수 : REVOKE 권한 ON 스키마이름.테이블이름 TO 롤이름
5. 사용자에게 롤 권한 회수 : REVOKE 롤이름 FROM 계정명
6. 롤 삭제 : DROP ROLE 롤이름;
• 사용하는 이유
ROLE을 사용함으로써 유저들의 권한을 그룹별로 통일시켜 효율적인 관리가 가능함
◈ REVOKE ◈
• REVOKE
계정의 권한 제거
표현법 : REVOKE 권한 ON 테이블명 FROM 계정명
오늘은 간단하게 알아보았고 세부적으로는 정리를 안했다! 어느정도 공부하고 이해해서
다음에 깊게 공부를 진행해야겠다 그럼 20000!!
'Back-End > Oracle' 카테고리의 다른 글
Oracle ■ SEQUENCE, INDEX (0) | 2024.08.09 |
---|---|
Oracle ■ TCL COMMIT, ROLLBACK, SAVEPOINT (0) | 2024.08.07 |
Oracle ■ DDL ALTER, DROP (0) | 2024.07.29 |
Oracle ■ 데이터베이스 정규화 (1) | 2024.07.26 |
Oracle ■ CREATE (0) | 2024.07.25 |