안녕하세요! 😊 오늘은 Oracle 데이터베이스에서 사용자 계정 관리 및 권한 부여 방법에 대해 함께 알아볼 거예요. Oracle DB를 사용하면서 사용자 계정을 만들고, 필요한 권한을 설정하는 일은 아주 중요한 부분이에요. 처음 접하는 분들도 쉽게 따라할 수 있도록 단계별로 설명드릴게요. 포기하지 말고 끝까지 함께 해봐요! 💪
1. Oracle 사용자 계정 생성하기
SQL 명령어로 사용자 계정 생성하기
Oracle DB에서 새로운 사용자 계정을 만들 때는 CREATE USER
명령어를 사용해요. 아래는 간단한 예시입니다:
CREATE USER myuser
IDENTIFIED BY mypassword
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
설명
CREATE USER myuser
:myuser
라는 새로운 사용자 계정을 만듭니다.IDENTIFIED BY mypassword
:mypassword
를 계정의 비밀번호로 설정합니다.DEFAULT TABLESPACE users
: 기본 테이블스페이스를users
로 지정합니다.TEMPORARY TABLESPACE temp
: 임시 테이블스페이스를temp
로 지정합니다.
📌 테이블스페이스란?
Oracle DB에서 데이터를 저장하는 논리적 저장소예요. 기본 테이블스페이스는 사용자의 데이터가 저장되는 공간, 임시 테이블스페이스는 작업 중 생성되는 임시 데이터가 저장되는 공간입니다.
2. 사용자에게 권한 부여하기
Oracle에서 생성된 사용자는 기본적으로 아무런 권한이 없어요. 권한을 부여하려면 GRANT
명령어를 사용합니다.
시스템 권한 부여
시스템 권한은 데이터베이스 작업을 수행하기 위해 필요한 권한이에요.
GRANT CREATE SESSION TO myuser;
CREATE SESSION
: 사용자가 데이터베이스에 접속할 수 있는 권한을 부여합니다.
객체 권한 부여
객체 권한은 특정 테이블, 뷰, 프로시저 등에 대해 작업할 수 있는 권한이에요.
GRANT SELECT, INSERT ON employees TO myuser;
SELECT, INSERT ON employees
:employees
테이블에 대해SELECT
(조회)와INSERT
(삽입) 권한을 부여합니다.
3. 역할(Role) 사용하기
역할은 여러 권한을 묶어서 사용자에게 한 번에 부여할 수 있는 기능이에요.
역할 생성
CREATE ROLE manager_role;
역할에 권한 추가
GRANT CREATE TABLE, CREATE VIEW TO manager_role;
사용자에게 역할 부여
GRANT manager_role TO myuser;
이렇게 하면 manager_role
에 포함된 권한을 myuser
가 사용할 수 있어요.
4. 사용자 계정 잠금 및 해제
Oracle에서는 보안 목적으로 계정을 잠글 수도 있고, 필요시 다시 해제할 수도 있어요.
계정 잠금
ALTER USER myuser ACCOUNT LOCK;
계정 잠금 해제
ALTER USER myuser ACCOUNT UNLOCK;
5. 사용자 계정 삭제
사용자가 더 이상 필요하지 않을 경우, 계정을 삭제할 수 있어요.
DROP USER myuser CASCADE;
CASCADE
: 사용자의 모든 데이터와 객체를 함께 삭제합니다.
정리
- 사용자 계정 생성:
CREATE USER
- 시스템 권한 부여:
GRANT CREATE SESSION
- 객체 권한 부여:
GRANT SELECT ON table_name
- 역할(Role) 사용:
CREATE ROLE
,GRANT role TO user
- 계정 잠금 및 해제:
ALTER USER ... LOCK/UNLOCK
- 계정 삭제:
DROP USER ... CASCADE
2024.12.19 - [데이터베이스] - SQL DML, DDL, DCL, TCL: 한눈에 보는 초보 개발자를 위한 가이드
'데이터베이스' 카테고리의 다른 글
SQL DML, DDL, DCL, TCL: 한눈에 보는 초보 개발자를 위한 가이드 (1) | 2024.12.19 |
---|---|
권한과 역할의 차이, 초보 개발자를 위한 완벽 가이드 (0) | 2024.12.19 |
초보자를 위한 Java JDBC와 Oracle 데이터베이스 연결 가이드 (0) | 2024.12.19 |
[데이터베이스] RDBMS와 NoSQL의 차이점 완벽 정리: 개념, 장단점, 사용 사례와 예제 코드 (1) | 2024.12.18 |
[데이터베이스] 정규화와 비정규화 완벽 비교: 개념, 장단점과 성능 최적화 예제 코드 (0) | 2024.12.18 |