2.2.7 DCL

YJ·2022년 8월 30일
0

2.2.7 DCL

DCL 개요

  • DDL : 테이블 생성과 조작에 관련된 명령어
  • DML : 데이터를 조작하기 위한 명령어
  • TCL : 트랜잭션을 제어하기 위한 명령어 (COMMIT, ROLLBACK, SAVEPOINT 등)
  • DCL: 유저를 생성하고 권한을 제어할 수 있는 명령어

유저와 권한

  • SYS, SCOTT, SYSTEM

오라클에서의 데이터베이스 접속

  • 유저(아이디 비밀번호)를 통해 데이터베이스에 접속

SQL Server에서의 데이터베이스 접속

  • 로그인 생성하여 데이터베이스에 접속

SQL Server 로그인

  1. WINDOW 인증 방식 - 윈도우에 로그인한 정보
  2. 혼합모드 인증 방식 - 윈도우 인증 또는 SQL 인증 방식

유저 생성과 시스템 권한 부여

  • 사용자가 실행하는 모든 DDL 문장(CREATE, ALTER, DROP, RENAME)은 그에 해당하는 적절한 권한(시스템 권한)이 있어야 문장 실행 가능
  • ROLE을 이용하여 권한부여

ORACLE

  • 데이터베이스 연결
    CONN SCOTT/TIGER

  • 권한 부여
    GRANT CREATE USER TO SCOTT;

  • 유저 생성
    CREATE USER PSH IDENTIFIED BY PASSWORDDD;

SQL Server

  • 로그인 생성(유저 생성 전)
    CREATE LOGIN PSH WITH PASSWORD='KOREA7', DEFAULT_DATABASE = AdventureWorks;

  • 권한 부여 후 로그인 수행

ORACLE

CONN SCOTT/TIGER;
GRANT CREATE SESSION TO PSH;
CONN PSH/KOREA7;

테이블 권한 부여

CONN SYSTEM/MANAGER;
GRANT CREATE TABLE TO PSH;
CONN PSH/KOREA7;
CREATE TABLE MENU (
	MENU_SEQ NUMBER NOT NULL,
    TITLE VARCHER2(10) );

SQL Server

GRANT CREATE TABLE TO PSH;
GRANT Control ON SCHEMA::dbo TO PJS;
CREATE TABLE MENU (
	MENU_SEQ NUMBER NOT NULL,
    TITLE VARCHER2(10) );

OBJECT에 관한 권한 부여

테이블에 접근 가능한 권한을 유저에게 주기

GRANT SELECT ON MENU TO SCOTT;
  • 테이블과 같은 오브젝트는 스키마가 소유를 하는 것(유저가 소유하는 게 아님)
  • 유저는 스키마에 대해 특정한 권한을 가짐

ROLE을 이용한 권한 부여

  • DBA는 ROLE을 생성하고, ROLE에 각종 권한을 부여한 후 다른 ROLE이나 유저에게 부여 가능하다.
  • 시스템 권한/오브젝트 권한 모두 부여할 수 있다.
  • 유저에게 직접 부여되거나 다른 ROLE에 포함되어 유저에게 부여된다.

부여했었던 권한 취소

오라클

REVOKE CREATE SESSION, CREATE TABLE FROM PSH;

SQL Server

REVOKE CREATE TABLE FROM PSH;

ROLE 만들기

  • LOGIN_TABLE 이라는 롤 만들기
CONN SYSTEM/MANAGER;
CREATE ROLE LOGIN_TABLE;
GRANT CREATE SESSION, CREATE TABLE TO LOGIN_TABLE;
GRANT LOGIN_TABLE TO PSH;
CONN PSH/KOREA7;

CREATE TABLE MENU2(
	MENU_SEQ NUMBER NOT NULL,
    TITLE VARCHER2(10));

오라클 제공 ROLE

  • CONNECT : CREATE SESSION 처럼 로그인 권한이 포함

  • RESOURCE : CREATE TABLE과 같은 오브젝트의 생성 권한이 포함

  • 유저 삭제 명령
    DROP USER PSH CASCADE; // 유저가 만든 테이블도 같이 삭제됨

  • 사용자 생성 명령
    CREATE USER PSH IDENTIFIED BY KOREA7;

  • 롤을 이용한 권한 부여
    GRANT CONNECT, RESOURCE TO PSH;

SQL Server 제공 ROLE

  • 제공되는 롤에 멤버로 참여하는 방식
  • 인스턴스 수준의 작업이 필요한 경우: 서버 수준 역할명을 이용하여 로그인 및 사용자 권한을 제어
  • 데이터베이스 수준의 작업이 필요한 경우: 데이터베이스 수준 역할을 이용하여 부여

profile
💻귀찮으니 필요할 때만 쓰는 Computer Vision 일지 ㅇㅇ💻

0개의 댓글