[SQL] 유저 액세스 제어

·2025년 6월 11일

SQL

목록 보기
15/126

유저 시스템 권한

  • CREATE SESSION
  • CREATE TABLE
  • CREATE SEQUENCE
  • CREATE VIEW
  • CREATE PROCEDURE

역할 생성 및 역할에 권한 부여

역할 생성

CREATE ROLE manager;

역할에 권한 부여

GRANT create table, create view
TO manager;

유저에게 역할 부여

GRANT manager TO alice;

CREATE USER user01 
IDENTIFIED BY oracle_4U ; 

GRANT create session, create view, create table TO user01 ; 
GRANT select on ora1.employees                  TO user01 ; 

CREATE ROLE manager ; 
GRANT create session, create view, create table TO manager ; 
GRANT all on ora1.employees                     TO manager ; 
GRANT manager TO user01 ;

SELECT *
FROM dba_role_privs 
WHERE grantee = 'USER01';

SELECT *
FROM dba_sys_privs 
WHERE grantee = 'USER01';

SELECT *
FROM dba_tab_privs 
WHERE grantee = 'USER01';

SELECT *
FROM dba_tab_privs 
WHERE grantee = 'MANAGER';

REVOKE manager FROM user01 ;

객체 권한

객체 권한테이블시퀀스
ALTER✔️✔️
DELETE✔️✔️
INDEX✔️
INSERT✔️✔️
REFERENCES✔️
SELECT✔️✔️✔️
UPDATE✔️✔️
GRANT 	object_priv [(columns)]
ON 	object
TO 	{user|role|PUBLIC}
[WITH GRANT OPTION];

객체 권한 부여

  • employees 테이블에 query 권한 부여
GRANT 	select
ON 		employees
TO 		demo;
  • 특정 열을 갱신할 수 있는 권한을 유저와 역할에 부여
GRANT 	update {department_name, location_id}
ON 		departments
TO 		demo, manager;

권한 전달

  • 유저에게 권한을 전달할 수 있는 자격 부여
GRANT 	select, insert
ON 		departments
TO 		demo
WITH GRANT OPTION;
  • 시스템의 모든 유저가 departments 테이블에서 데이터를 query 할 수 있도록 허용
GRANT 	select
ON 		departments
TO 		PUBLIC;

부여된 권한 확인

객체 권한 취소

  • REVOKE문을 사용하여 다른 유저에게 부여된 권한 취소 가능
  • WITH GRANT OPTION 절을 통해 다른 유저에게 부여된 권한 취소 가능
REVOKE {privilege [,privilege...] | ALL}
ON 		object
FROM 	{user[, user...] | role | PUBLIC}
[CASCADE CONSTRAINTS];

0개의 댓글