본문 바로가기

Oracle/SQL

SQL - DCL 문

GRANT : 권한 부여

데이터를 ACESS 하거나, 조작 하는 권한이다.
→ 특정데이터를 아무나 조회하면 안되므로, DBA 들이 권한 관리를 철저하게 한다.

현재 접속해 있는 유저가 누구인지 확인 하는 방법

SHOW USER ;

유저 생성하기

CREATE USER C##SMITH 
IDENTIFIED BY TIGER ; 

 

접속 밑에  초록색+ ( 새접속) 을 클릭하여 새로 생성한 c##smith 에 로그인 해 준다. 
이름과, 비밀번호를 입력한후 테스트를 거쳐서 성공 ! 하면 접속하면 되고,  
sqldeveloper 접속할때 접속 버튼 안보이면 저장을 누르면 된다. 

만약 테스트 시 IO 오류가 뜬다면 명령 프롬포트 창에 들어가서 IPCONFIG 들어가고 IP4 주소를 복사 한뒤,
LOCALHOST 를 지우고 IP 주소로 붙여주어 하면 접속 성공된다.

simth 유저에게 접속할 수 있는 권한을 부여

grant connect to c##smith; 

유저가 잘 생성되어졌고 권한이 잘 부여되었는지 확인하기

select * 
from dba_users;

부여 확인

select * 
from dba_role_privs
where grantee='C##SMITH';

→ GRANTED_ROLE 이 : CONNECT 로 되어있는것을 확인 가능하다.
→ 역할이 부여 받았기 때문에 접속할 수 있는 권한이 생겼습니다.

 

이렇게 만들고 나게 되면 접속할 수 있는 권한만 부여 받은거라, 테이블 생성이라던지 다른 활동은 불가하다.

따라서 테이블 생성할 수 있는 권한을 부여해야한다.

grant create table to c##smith;

→ 권한을 줄 수 있는 유저로 가서 권한을 부여해 준다.

내가 접속한 유저가 가지고 있는 권한 리스트를 확인하는 방법

select * 
from session_privs;

→ 권한을 확인하고 내가 어디까지 일을 할 수 있는지 본다. → 만약 권한이 부족하면 권한을 늘려달라고 요청 해야한다.

create session → 12c 이후에 생긴 권한인데 클라우드 db 로 구성되었다는 뜻
create session → connect 할 수 있는 권한

 

REVOKE : 권한 취소

smith 유저의 create table 권한 취소하기.

revoke create table from c##smith ;

king 유저의 create table, connect 권한 취소하기

revoke create table, connect from  c##king;