SQL의 종류 5가지
1. Query : select 문의 6가지절, 조인, 서브쿼리, 집합연산자
2. DML : insert, update, delete, merge
3. DDL : create, alter, drop, truncate, rename
4. DCL : grant, revoke
5. TCL : commit, rollback, savepoint
ㅇDCL문(Data Control Language)
권한을 부여하거나 취소하는 명령어
grant : 권한부여
revoke : 권한취소
데이터를 엑세스(access)하거나 조작하는 권한
특정 테이블의 데이터를 아무나 함부로 조회하면 안되므로 회사에서는 dba들이 권한관리를 아주 철저하게 함.
예제. 현재 접속해있는 유저가 누구인지 확인하는 방법
show user;
예제. 유저 생성하기
create user c##smith
identified by tiger;
-- c## 은 보안상의 이유이므로 만약 안 될 경우 빼도 됨.
enterprise edition 버전은 유저이름 앞에 c##을 안붙여도 되는데 express edition의 경우는 18c부터 c##을 붙여야함. identified by 다음에 비밀번호를 적어줘야 하는데 비밀번호를 생성할 때 보안을 강력하게 하려면 문자,숫자,특수문자,대소문자 구분까지 섞어서 만들어주면 해킹하기 어려워짐.
예제. smith유저에게 접속할 수 있는 권한 부여
grant connect to c##smith;
예제. 유저가 잘 생성되어졌고 권한을 잘 부여되었는지 확인
select *
from dba_users;
select *
from dba_role_privs
where grantee='C##SMITH';
C##SMITH 유저가 connect 라는 role을 부여받았기 때문에 접속할 수 있는 권한이 생겼습니다.
sqldeveloper를 하나 더 켜서 smith로 접속하시오.
sqldeveloper 접속할 때 접속 버튼이 안보이면 저장을 누르면 보입니다.
예제. 접속한 smith유저에서 다음과 같이 테이블을 생성하시오.
SMITH 유저는 접속권한만 받았을 뿐 테이블을 생성하거나 등의 권한을 받진 않았음.
> 현재 권한을 가지고 있는 scott유저에서 smith유저에게 테이블 생성 권한을 부여해야함.(scott 창에서 부여)
grant create table to c##smith;
다시 smith 창에서 테이블을 생성하면 생성됨.
예제. 내가 접속한 유저가 가지고 있는 권한 리스트를 확인하는 방법
select *
from session_privs;
(c##smith로 접속했을 때)
CREATE SESSION <== connect 할 수 있는 권한
CREATE TABLE
SET CONTAINER <== 12c이후에 생긴 권한인데 클라우드 db로 구성되었다는 뜻.
예제. 이번에는 다시 scott유저에서 smith유저에게 create view 권한을 부여하세요.(scott 창에서 부여)
grant create view to c##smith;
CREATE SESSION
CREATE TABLE
CREATE VIEW <== view 생성할 수 있는 권한이 들어옴.
SET CONTAINER
문제641. scott유저에서 king이라는 유저를 만들고, king 유저에게 connect, create table, create view 권한을 부여하세요.
create user c##king
identified by tiger;
grant connect to c##king;
grant create table to c##king;
grant create view to c##king;
-- 한번에 줄 수도 있음
grant connect, create table, create view to c##king;
-- user 잘못 만들었을 경우
drop user king cascade;
예제.smith에게 부여했던 create table권한을 취소하시오.(scott 창에서 권한취소)
revoke create table from c##smith;
문제642. king에게 줬던 create vie 권한과 connect 권한을 모두 취소하시오.
revoke create view, connect from c##king;
'Study > class note' 카테고리의 다른 글
python / 설치 (0) | 2021.12.06 |
---|---|
sql / TCL (0) | 2021.12.06 |
sql / SQL을 이용해서 빅데이터 분석하기(활용) (0) | 2021.12.06 |
문제8. SQL / 마름모 출력하기 (0) | 2021.12.03 |
sql / 알고리즘문제2 (0) | 2021.12.02 |