Oracle SQL | DCL, 권한, Role

suyeon·2022년 5월 16일
0

Oracle SQL

목록 보기
5/6
post-thumbnail

220516

🎇 DCL

사용자 관련

  • 계정 생성, 삭제, 잠금 제어
  • resource(DB Object) 접근 권한 제어

1. 사용자 계정 생성하기

  • 시스템 권한을 가지고 있는 계정만 가능 > 관리자급
  • 계정 생성 권한을 가지고 있는 일반 계정도 가능
  • 새로 생성된 계정은 아무 권한이 없음 > 접속할 권한조차도 없음

create user 계정명 identified by 암호 : 계정 생성
alter user 계정명 identified by 암호 : 계정 삭제
alter user 계정명 account unlock : 계정 잠금 설정
alter user 계정명 account lock : 계정 잠금 해제

2. 사용자에게 권한 부여하기

grant 권한명 to 유저명

  • 시스템 권한을 가지고 있는 계정만 가능하다 > 관리자급

3. 사용자에게 권한 제거하기

revoke 권한명 from 유저명

🎇 시스템 권한 종류

1. 시스템 권한

create user - 계정 생성
drop user - 계정 삭제
drop any table - 임의 테이블 삭제
create session - 데이터베이스 접속
create table - 테이블 생성
create view - 뷰 생성
create sequence - 시퀀스 생성
create procedure - 함수 생성

-- system계정
show user;

create user hong identified by java1234; -- 계정생성

grant create session to hong; -- create session > hong으로 접속을 할 수 있게 권한을 준다.
grant create table to hong; -- create table > 테이블 생성권한

-- hong계정
show user;

-- ORA-01031: insufficient privileges : 권한이 없는 에러
create table tblData (
    seq number primary key,
    data varchar2(100) not null
);

2. Role, 권한의 집합

  1. connect
    • 사용자 DB 접속 + 기본적 행동
    • CREATE SESSION 권한이 있음
  1. resource
    • 사용자가 객체를 생성하거나 조작하는 권한 모음
    • CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER, CREATE OPERATOR, CREATE INDEXTYPE, CREATE TABLE
    • crate 트리거, 시퀀스, 타입, 프로시저, 테이블 등 8가지 권한이 있음
  1. dba
    • 준관리자급 권한 모음

🙋‍♂️ 마무리

프로젝트 진행 할때 프로젝트용 계정 생성하기, DCL 내가 사용할 일이 잘 없다.

create user team identified by java1234;

grant connect, resource, dba to team;

0개의 댓글