오라클 DB에 접속하여 데이터를 관리하는 계정을
사용자(USER)라고 표현합니다.
오라클 DB는 각 사용자 별로
테이블, 인덱스, 뷰 등의 객체가 따로 생성됩니다.
사용자의 생성과 권한부여에 대해서 알아보겠습니다.
📝 사용자 관리가 필요한 이유
⦁ 실무에서 사용하는 여러 종류의 서비스는 한 사용자가 관리하기 힘들다.
⦁ 따라서 업무 분할과 효율, 보안을 고려하여 업무에 따라 여러 사용자를 나눈다.
📝 오라클 DB에서의 스키마
✔ 오라클 DB에서는 스키마와 사용자를 구별하지 않고 사용하기도 합니다.
하지만 정확히는 SCOTT과 같은 계정은 사용자고,
SCOTT 계정으로 만든 모든 객체를 SCOTT의 스키마라고 말합니다.
🤔스키마란?
데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합입니다.
좀 더 자세하게 말하면 DB를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한 것이 바로 스키마입니다.
✔ 메타데이터란 많은 양의 데이터를 수집, 저장, 분석할 수 있도록 일관된 방식으로 구조화된,
다른 데이터를 설명하는 데이터입니다. ( DB를 설명하는 데이터라는 뜻이 됩니다. )
📝 사용자 생성
✔ 항상 공식 문서를 참고합시다.
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_8003.htm#SQLRF01503
⦁ CREATE USER문을 사용합니다.
CREATE USER 사용자 이름 (필수)
IDENTIFIED BY 패스워드 (필수)
DEFAULT TABLESPACE 테이블 스페이스 이름(선택)
TEMPORARY TABLESPACE 테이블 스페이스(그룹) 이름(선택)
QUOTA 테이블 스페이스크기 ON 테이블 스페이스 이름(선택)
PROFILE 프로파일 이름(선택)
PASSWORD EXPIRE(선택)
ACCOUNT [LOCK/UNLOCK] (선택)
⦁ cmd에 입력
sqlplus system/비밀번호
CREATE USER 사용자이름
IDENTIFIED BY 설정할 비밀번호 ;
📝 사용자 권한이란?
⦁ 권한 관리가 필요한 이유
기업에게 데이터는 재산 이상의 가치를 경우가 많습니다.
신입 DBA가 실수로 데이터를 날려버리면 큰일이겠죠?
따라서 데이터를 안전하게 보관하기 위해서 관련된 사용자만
데이터를 사용, 관리할 수 있는 보안장치로서 권한을 사용합니다.
⦁ 권한관리 🙎♂️
오라클에서는 데이터를 안전하게 보호하기 위해서 각 사용자에게 접근 가능한
데이터 영역과 권한을 지정해 줄 수 있습니다.
즉, 계정을 만들기만 해서는 사용할 수 없습니다.
DB에 접근할 수 있는 권한, 테이블을 생성할 수 있는 권한 등이 필요합니다.
✔ 권한의 종류 2가지
시스템 권한과 객체 권한 2가지가 존재합니다.
시스템 권한은 유저 계정 자체와 관련된 권한입니다. ( 사용자 생성, DB접근, DB 자원 생성 및 관리 등 )
객체 권한은 유저가 가진 테이블, 인덱스 등 객체에 관련된 권한입니다.
예를 들어 TESTUSER가 소유한 테이블에 SCOTT 사용자가 SELECT나 INSERT 등의
작업이 가능하도록 허용할 수 있습니다.
📝 사용자 권한 부여 방법
✔ 권한부여는 GRANT문을 사용합니다. 공식 문서 참고하세요 😀
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#BGBCIIEG
권한의 종류가 엄청 다양합니다. 따라서 자세한 사항은 공식 문서를 참고하시기 바랍니다.
아까 생성한 사용자에게 간단하게 오라클을 사용할 수 있는 권한을 부여해 봅시다.
3가지 권한을 부여합니다.
RESOURCE → 여러 권한이 묶여있는 롤입니다. 테이블 스페이스를 무한으로 지정해 주는 기능 등이 있습니다.
CREATE SESSION → DB에 접근할 수 있는 권한입니다.
CREATE TABLE → 테이블을 생성할 수 있는 권한입니다.
1. 시스템 계정 접속
SQLPLUS SYSTEM/1234;
2. 사용자 생성 (아까 했으면 PASS)
CREATE USER TESTUSER
IDENTIFIED BY 1234;
3. 권한 부여
GRANT
RESOURCE, CREATE SESSION, CREATE TABLE
TO TESTUSER;
다음과 같은 3가지 권한을 주면 이제 사용자 계정에 접속할 수 있고
테이블을 만들 수 있게 됩니다!
참고 문헌 : Do it! 오라클로 배우는 데이터베이스 입문
'DB > Oracle' 카테고리의 다른 글
[DB] 이클립스에서 SQL 쿼리문 실행하기 (Data Source Explorer, Oracle) (0) | 2022.10.12 |
---|---|
[Oracle] SQL 자주 쓰는 Query문 정리 (WHERE, LIKE 등) (0) | 2022.09.26 |
[Oracle] 오라클 학습용 계정 SCOTT, HR 활성화하기 (스콧 계정 에러) (2) | 2022.09.23 |