사용자란?
오라클 데이터베이스를 활용하여 새로운 서비스를 구축한다면 테이블을 비롯한 여러 객체가 필요할 것이다. 지금까지 SQL문을 공부했다면 SCOTT계정으로 접속해서 필요한 테이블과 객체를 생성하여 활용할 수도 있다. 하지만 SCOTT 계정은 오라클 데이터베이스를 공부해 본 사람이라면 대부분 비밀번호까지 알고 있는 계정이기 때문에 주요 데이터를 보관하고 관리하기에는 보안 위험이 있다. 따라서 SCOTT 계정 외에 오라클 데이터베이스에 접속할 수 있는 새로운 계정이 필요하다. 이렇게 오라클 데이터베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자(USER)로 표현한다.
- 사용자 관리가 필요한 이유
데이터를 활용한 서비스 규모가 크거나 작은 규모의 여러 서비스를 통합한 방식 등 실무에서 사요아는 여러 종류의 서비스는 한 사용자가 관리하기에는 데이터 분량이 너무 방대하거나 구조가 복잡해지는 경우가 많다. 따라서 업무 분할과 효율, 보안을 고려하여 업무에 따라 사용자를 나눈다. 오라클 데이터베이스는 테이블, 뷰, 인덱스 등 여러 객체가 사용자별로 생성되므로 업무별 사용자를 생성한 후에 각 사용자 업무에 맞는 데이터 구조를 만들어 관리하는 방식을 사용할 수 있다. 반대로 대표 사용자를 통해 업무에 맞는 데이터 구조를 먼저 정의한 뒤에 사용할 수 있는 데이터 영역을 각 사용자에게 지정할 수도 있다.
데이터베이스 스키마란?
데이터베이스에서 데이터 간 관계, 데이터 구조, 제약 조건 등 데이터를 저장 및 관리하기 위해 정의한 데이터베이스 구조의 범위를 스키마(schema)를 통해 그룹 단위로 분류한다. 오라클 데이터베이스에서는 스키마와 사용자를 구별하지 않고 사용하기도 한다. 사용자는 데이터를 사용 및 관리하기 위해 오라클 데이터베이스에 접속하는 개체를 뜻하고, 스키마는 오라클 데이터베이스에 접속한 사용자와 연결된 객체를 의미한다. 지금까지 사용한 SCOTT계정을 예로 들면 SCOTT은 사용자이고 SCOTT이 생성한 테이블, 뷰, 제약조건, 인덱스, 시퀀스, 동의어 등 데이터 베이스에서 SCOTT 계정으로 만든 모든 객체는 SCOTT의 스키마가 된다.
사용자 생성
오라클 사용자를 생성할 때는 CREATE USER문을 사용한다. CREATE USER 명령어에는 사용할 수 있는 옵션이 여러가지 있는데, 기본적으로 사용자 이름과 비밀번호만 지정해주면 사용자를 생성할 수 있다.
CREATE USER 사용자 이름 (필수)
IDENTIFIED BY 패스워드 (필수)
DEFAULT TABLESPACE 테이블 스페이스 이름 (선택)
TEMPORARY TABLESPACE 테이블 스페이스(그룹) 이름 (선택)
QUOTA 테이블 스페이스크기 ON 테이블 스페이스 이름 (선택)
PROFILE 프로파일 이름(선택)
PASSWORD EXPIRE(선택)
ACCOUNT [LOCK/UNLOCK] (선택) ;
하지만 유저를 생성하는 명령어는 SCOTT계정으로는 실행할 수 없는데, 왜냐하면 사용자 생성 권한이 없기 때문이다. 사용자 생성은 일반적으로 데이터베이스 관리 권한을 가진 사용자가 권한을 가지고 있다.( SYS, SYSTEM 계정) SYSTEM계정으로 접속후 사용자를 생성해보자.
CREATE USER ORCLSTUDY IDENTIFIED ORACLE;
생성한 후에 ORCLSTUDY 계정으로 접속을 시도하면 접속이 되지않는데, 이는 데이터 베이스 연결을 위한 권한인 CREATE SESSION 권한이 없기 때문이다. SYSTEM계정으로 권한을 부여해보자.
GRANT CREATE SESSION TO ORCLSTUDY;
이제 ORCLSTUDY사용자로 데이터베이스에 접속할 수 있다.
사용자 정보 조회
사용자 또는 사용자 소유 객체 정보를 얻기 위해 다음과 같이 데이터 사전을 사용할 수 있다.
SELECT * FROM ALL_USERS WHERE USERNAME = 'ORCLSTUDY';
SELECT * FROM DBA_USERS WHERE USERNAME = 'ORCLSTUDY';
SELECT * FROM DBA_OBJECTS WHERE USERNAME = 'ORCLSTUDY';
오라클 사용자의 변경과 삭제
-오라클 사용자 변경
사용자 정보를 변경할 때는 ALTER USER문을 사용한다. 패스워드를 ORCL로 변경해보자
ALTER USER ORCLSTUDY IDENTIFIED BY ORCL;
비밀번호를 변경했으므로 기존 비밀번호(ORACLE)는 접속할수 없고 새 비밀번호를 써야한다. 그리고 사용자 생성과 마찬가지로 사용자 정보 변경도 SYSTEM계정으로 해야한다.
- 오라클 사용자 삭제
DROP USER문을 사용하여 사용자를 삭제한다. 만약 삭제하려는 사용자가 다른 곳에서 접속 중이면 삭제되지 않는다.
DROP USER ORCLSTUDY;
- 오라클 사용자와 객체 모두 삭제
사용자 스키마에 객체가 있을 경우에 CASCADE 옵션을 사용하여 사용자와 객체를 모두 삭제할 수 있다.
DROP USER ORCLSTUDY CASCADE;
'DATABASE > USER : 사용자, 권한, 롤 관리' 카테고리의 다른 글
02. 권한 관리 (0) | 2024.03.28 |
---|