<목차>
ㅇ
ㅇ
ㅇ
<4교시> 마지막 디시엘 언어 살펴볼꺼야
DCL
수많은 유저가 동시에 접근
불법적인? 유저들을 관리하기 위해
데이터 컨트롤 랭귀지
데이터 보안과 연결
보안이란
1권한이 없는 애들이 접근하지 못하도록 막아주는 것
디비 내부라기보다는. 운영체제등의 외부적 요소가 강해 - 예.인증서
2권한 있는 애들이 불법적인 작업을 하지 못하도록 - 이게 디시엘
데이터베이스관리자DBA가 관리하게 돼
DB에 접근하는 모든 사용자들을 2개 영역으로 나눠서
1conn hr/hr 사용자의 아이디와 패스워드
2그렇게 생성되어 있는 유저들을 '권한'을 통해 사용자들을 관리 - dcl언어 사용
이런 관리는 hr계정에서는 못하지
dba가 할 수 있어
ㅇ
크게 2개
시스템 권한
디비에 접근할 수 있는. 100개 이상
오로지 dba만이 부여할 수 있어
객체 권한
테이블, 뷰 , 시퀀스 등의 객체에 뭔가를 할 수 있는 권한
dba와 / 그 객체의 소유주가 관리할 수 있어
ㅇ
시스템권한 - 유저생성, 유저제거,테이블제거, 테이블백업
현업에서도 100가지 이상 다 알고 있지 않아. 그냥 매뉴얼 보고 진행해
ㅇ
창 2개 띄워두고
1창 시스템계정 접속 (이게 dba계정이야)
얘보다 상위 개념의 계정은 sysdba, sysopper 라는 권한이 만들어져
dba까지 이렇게 3가지 강력한 신이야! 자동으로 만들어지는
sysda는 데이터 백업할 수 있는 권한
sysopper은 백업은 없어
dba 디비 구조에 관련
conn system/1234 이러면 시스템에 접근
비번 까먹으면
conn /as sysdba
여기에 접근해서 바꾸면 돼
ㅇ
쇼핑몰 가면 가장 먼저 하는 건? 계정 생성하기. 등업하기.
디비도 똑같아
1유저생성
2권한부여
3권환회수
권한이 생성된 유저에게 권한을 부여와 회수를 통해 유저를 관리
이건 오로지 dba만 할 수 있어
hr유저는 할 수 없어
ㅇ
유저생성하기
크리에이트 유저 아이디
패스워드 지정하는 절이
아이덴티파이드 바이
CREATE USER test
IDENTIFIED BY test;
실제 현업에서 이렇게 만들지는 않아
이렇게 권한을 주면
test계정은 이 디비 안의 모든 자원을 사용할 수 있는 자격이 생겨버려
그래서 더 떠 유저가 사용할 자원을 제한하는 명령문들을 적어
메모리, 블락
너는 10메가만 써. 이런식으로 지정해줘
여기까지 가는건 dba되려는 거 db를 더 파야 해
2창에서 연결해보면 안돼
왜? 아직 생성만 되고 권한은 없으니까
권한 부여는 그랜트 부여할 권한 이름 to 유저이름
크리에이트 세션은 디비에 접속할 수 있는 권한
이러니까 2 창에서 접속 되네
이제 테이블 생성하려고 하니
SQL> create table a
2 (a number(4));
create table a
그러면 다시 1창 가서 테이블 생성 권한 줘
SQL> grant create table to test;
Grant succeeded.
2창 - 여전히 안 만들어지네
SQL> create table a
2 (a number(4));
create table a
1창 - 그러면 저장공간도 권한 줘야겠지
L> grant connect, resource to test; ( hr 계정이 이거야)
2창에서 드디어 크리에이트 사용 가능해져!
SQL> create table a
2 (a number(4));
Table created.
ㅇ
이제 회수해보자. 리보크
1창
SQL> revoke connect, resource from test;
Revoke succeeded.
2창 - 권한 회수되서 다시 못 만들게 돼
SQL> create table b
2 (b number(4));
create table b
그랜트와 리보크로 권한을 부여하고 회수를 진행
현업에서는 간단하진 않아;;
부여회수는 간단하지만
부여를 할수 있는 ~~로 접속하는 게 어려워
가장 먼저 하는 게 ~ 여기 다시 듣기
이게 뚫려버리는 순간 이건 내 디비가 아니잖아
철저하게 dba 계정 관리하는 방법 있어. 실제로는
책 살펴보기
ㅇ사용자 생성
스캇씨는 오라클창시자 ㅋㅋㅋ
ㅇ사용자시스템권한
명령문이 직관적이야
ㅇ롤이란?
계정들 관리할 때 . 수가 작으면 그냥 엑셀파일로 어떤 권한까지 있는지 적어두면 돼
카카오같은 건? 몇천만명을 엑셀파일로 정리가 될까? 안돼. 개별관리 어려워
롤은 : 권한을 모아놓은 집합
하나의 롤에는 여러 권한이 들어있고
커넥트.리소스가 대표적인 롤이야
대표적롤 3개
커넥트connect 액세스 할 수 있는 시스템 권한 약 40가지
리소스resouce자원관련된 . 디비의 여러 자원 락, 메모리, 파일?, 등등 약 20가지
이거 2개 합치면 70개정도의 권한 받는거야
디비에이
롤 사용하면 좋은 이유는?
페이지 80
ㅇ 롤생성 - 이건 아직 깡통
롤 권한부여 : a라는 권한과 b라는 권한
사용자에게 롤 부여 : 대한과 코차에게 그 롤을 부여하면
이제 장점이 나와
그랜트 c,d to 매니저 : 매니저라는 롤에게 c,d 권한 추가하면
대한과 코차에게 자동으로 c,d 권한 생겨
직급별, 업무별로 롤이 만들어지는거야
등업되면 기존 권한 회수하고 롤을 부여하는거야
롤만 제대로 관리해주면
롤에 딸린 사람이 1명이든 100명이든 상관 없어져
대리롤, 과장롤, 인사과롤, 경리과롤,
현업은 롤을 이용해서 관리 해
앞의 커넥트 리소스에 별 달기
ㅇ 암호변경
자기 계정의 패스워드 바꿀 수 있을까? 내 비번은 바꿀 수 있어야지~ㅋㅋ
자기 계정은 바꿀 수 있어! 내 계정에 대해서는 가능. 타 계정을 못하는 거지
하나 더 알려드리면
비밀번호 틀려서 정정하는 거
계정 잠겨버리게 할 수 있어
alter user hr
account lock;
풀리는 건
alter user hr
account unlock;
어카운트 명령어는 알아두기
이거는 알아둬야
처음 사용할 때 잠겨있으니까 - 여기 다시 듣자
ㅇ객체권한
객체 소유주는 객체를 생성하는 사람. 모든 권한을 다 가지고 있어. 이건 당연해
크리에이트 테이블 하면 객체권한 자동으로 생성
다른 계정에서 권한을 가지는 게 객체권한
a계정이 만든 emp테이블
이걸 b계정이 사용할 수 있는 권한이 객체권한
뷰는 앨터 안돼 - 이 부분 스크린샷
ㅇ
객체권한 슬습
on이 추가돼
대상 객체를 on절로 지정
여기는 개발자들이 사용할 경우 별루 없이ㅡ니 대강 봐...ㅋㅋㅋ
ㅇ
dba가 a유저에게 객체권한 부여했어
이걸 a유저가 b유저에게 권한을 이양할 수 있을까? 안돼
그런데 권한 줄 때 위드 그랜트 옵션이라는 명령어로 권한을 주면 이양 가능해
sys권한은 위드어드미 옵션으로 권한 이양 가능
여기 사진 스크린샷
객체권한은 종속적인 권한 같이 사라져
시스템은 회수해도 남아있어
시스템은 부여한 사람만이 권한 회수
ㅇ 89페이지
디비 여러개 연결 링크
실제로 좋아
근데 우리는 구현 못해... 몇천만원 패키지 구매해야 해 ㅋㅋ
자기들 제품 좋다고 홍보하는 거야 ㅋㅋㅋ
ㅇ이 디비는 개발자들과 떨어질래야 떨어질수가 없는 관계야
개발자들이 서비스 단 만들기 위해 데이터가 필요한거고
이 데이터들 저장 관리 하려면 db구축이 되어야 해
db구죽 안되면 아무 의미 없어
이걸 활용하기 위해서는 sql언어 사용하지 않을 수 없어
이 언어는 필수적으로 사용해야 하는 언어야!!
프로젝트 진행하게 되면 그 때 마다 이 db가 항상 따라다니느거야
즉, 수시로db는 관심가지고 봐둬야 하고
관심 있는 사람들은 15장부터 보면 더 다양한 스킬 사용할 수 있어.