-
SQL 사용자,권한,롤 관리DataBase/Oracle 2023. 9. 5. 12:08
1. 사용자 관리
1.1 사용자란?
- 오라클 DB로 새로운 서비스를 구축한다면, 테이블을 비롯한 여러 객체가 필요할 것이다.
- 오라클 데이터 베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자로 표현한다.
- 사용자 관리가 필요한 이유는 여러 종류의 서비스를 한 사용자가 관리하기에는 너무 방대하다. 따라서 업무 분할 효율 보안 등등을 고려하여 업무에 따라 여러 사용다를 나눈다.
- 오라클에서는 테이블,인덱스,뷰 등 여러 객체가 사용자 별로 생성되므로, 업무별 사용자를 생성한 후 각 사용자 업무에 맞는 데이터 구조를 만들어서 사용할 수 있다.
1.2 데이터베이스 스키마란?
- 데이터베이스에서 데이터 간 관계, 데이터 구조, 제약 조건 등 데이터를 저장 및 관리하기 위해 정의한 데이터베이스 구조의 범위를 스키마를 통해 그룹 단위로 분류합니다.
- 오라클에서는 스키마와 사용자를 구별하지 않고 사용하기도 한다.
- 사용자는 데이터 사용 및 관리하기 위해 DB에 접속하는 개체
- 스키마는 오라클 데이터 베이스에 접속한 사용자와 연결된 객체를 의미합니다.
EX) 한 사용자가 접속 이 사용자가 생성한 테이블,뷰,제약조건,인덱스,시퀀스 등등 해당 계정으로 만든 모든 객체는 해당 사용자의 스키마이다.
1.3 사용자 생성
- 오라클에서 CREATE USER문을 통해 사용자를 생성한다.
- 사용자 계정을 만들려면, 계정 생성 권한 필요 (SYS)
- 계정을 만들 때 아무런 권한을 주지 않으면, 새로 생성한 계정으로 접속이 불가
- 최소 CREATE SESSION 권한을 부여받아야 데이터 베이스에 접속할 권한을 부여받고 연결 가능
1.4 사용자 정보 조회
- 아래와 같은 데이터 사전을 통해 사용자 정보 조회할 수 있다.
SELECT * FROM ALL_USERS SELECT * FROM DBA_USERS SELECT * FROM DBA_OBJECTS
1.5 오라클 사용자 변경 및 삭제
오라클 사용자 변경
- 생성은 CREATE 변경은 ALTER USER문 사용
ALTER USER ORC IDENTIFIED BY '새비번';
사용자 삭제
DROP USER 유저명 -- 사용자와 객체 모두 삭제 DROP USER 유저명 CASCADE;
2. 권한관리
- 데이터를 안전하게 보관하기 위해 특정 사용자에게 특정 권한만을 부여할 수 있다. (DB접속 허가권한 같은 것)
- 오라클에 권한은 시스템권한과 객체권한이 있다.
2.1 시스템 권한이란
- 사용자 생성, 정보 수정 및 삭제, DB접근, 데이터 베이스 여러 자원과 객체 생성 및 관리 등의 권한
- ANY 키워드가 들어있는 권한은 소유자에 상관없이 사용 가능한 권한을 의미한다.
* 권한들은 P403참고
- 시스템 권한 부여
GRANT CREATE SESSION TO 사용자 GRANT [시스템 권한] TO [사용자/롤이름/PUBLIC] [WITH ADMIN OPTION]
- WITH ADMIN OPTION은 현재 GRANT로 부여받은 권한을 다른 사람에게 부여할 수 있는 권한을 함께 받는 것을 의미
최초로 권한을 부여받은 현재 사용자의 권한이 사라져도, 권한을 재부여 받은 다른 사용자의 권한은 유지된다.
- 시스템 권한 취소
REVOKE [시스템권한] FROM [사용자명/ROEL이름/PUBLIC]
3. 객체 권한이란?
- 특정 사용자가 생성한 테이블,인덱스,뷰,시퀀스 등에 대한 권한이다.
- 특정 사용자가 소유한 테이블에 대해 다른 사용자가 SELECT나 INSERT 가능하게 해줌
*권한의 종류는 P 407 참고
3.1 객체 권한 부여
GRANT [객체권한/ALL PRIVILEGES] ON [스키마.객체이름] TO [사용자명/롤이름/PUBLIC] [WITH GRANT OPTION]
- WITH GRANT OPTION은 권한을 부여받은 최초 사용자가 다른 사용자에게 권한을 부여할 수 있는 권한 부여 받음
ADMIN과 다르게 최초 권한을 부여받은 사용자의 권한이 사라지면, 다른 사용자에게 재부여된 권한도 함께 사라짐
3.2 객체 권한 취소
REVOKE [객체권한/ALL PRIVILEGES] ON [스키마.객체명] FROM [사용자/롤이름/PUBLIC] [CASCADE CONSTRAINTS/ FORCE]
4. 롤관리
- 롤이란 여러 권한이 함께 뭉쳐진 것을 의미 권한 그룹이다.
롤에 관련된 내용은 책 내용 참고 (412P)
'DataBase > Oracle' 카테고리의 다른 글
SQL - 제약 조건 (0) 2023.09.05 SQL - 데이터 정의어 (DDL) (0) 2023.09.04 SQL - 트랜잭션 제어와 세션 (0) 2023.09.04 SQL - DML (0) 2023.09.01 오라클 sql - 인라인 뷰를 사용한 TOP-N SQL (0) 2023.09.01