일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- const
- htmlFor
- Append
- createtextnode
- VAR
- appendChild
- Openlayers
- createElement
- boolean
- input
- FOR
- Let
- 학습법 #집중력
- Today
- Total
Atomic Habits
[Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성[출처] [Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성|작성자 JOKER 본문
[Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성[출처] [Oracle/오라클] 권한 부여(GRANT) / 제거(REVOKE) / 조회 / 계정(사용자) 생성|작성자 JOKER
체계성 2021. 12. 11. 08:48출처 : https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=heartflow89&logNo=221002112762
데이터베이스에 저장되어 있는 중요한 데이터들을 아무나 접근하여 삭제를 하거나 변경을 할 수 있다면 심각한 문제가 발생할 것이다. 따라서 데이터베이스의 데이터들을 보호하기 위해서는 데이터베이스 관리자가 사용자에게 적절한 권한을 부여하고 사용자에 따라 사용할 수 있는 권한에 제한을 두어야 한다. 이번 포스팅에서는 대표적인 권한들의 종류와 권한을 부여하는 방법에 대해서 알아보도록 하겠다.
권한은 크게 시스템 권한과 객체 권한으로 나누어진다.
시스템 권한은 주로 DBA 계정에 부여가 되며 사용자를 생성하거나 삭제하고, DB에 접근 및 각종 객체(테이블, 뷰, 인덱스, 동의어)를 생성하는 권한들이 있다. 대표적인 시스템 권한들은 CREATE USER(유저 생성), DROP USER(유저 삭제), DROP ANY TABLE(임의의 테이블 삭제), BACKUP ANY TABLE(임의의 테이블 백업), CREATE SESSION(데이터베이스 접속 권한), CREATE TABLE(테이블 생성 권한), CREATE VIEW(뷰 생성 권한), CREATE SEQUENCE(시퀀스 생성 권한), CREATE PROCEDURE(함수 생성 권한) 등이 있다.
객체 권한은 특정한 객체에 대해서 DML 명령어(SELECT, INSERT, DELETE, UPDATE 등) 등을 사용하여 객체를 조작할 수 있도록 하는 권한을 의미하며 설정 가능한 권한들은 아래와 같다.
우선 데이터베이스 사용자 계정에 대해서 권한을 부여하기 전에 계정을 생성하는 방법에 대해서 알아보도록 하자. 사용자 계정을 생성하기 위해서는 시스템 권한을 갖고 있는 계정으로 접속을 해야 한다. SCOTT 계정에는 사용자를 생성하는 권한이 기본적으로 없다. 따라서 시스템 권한을 갖고 있는 DBA 계정(SYS, SYSTEM)으로 접속을 해야 한다. SYSTEM 계정으로 접속을 하고 아래와 같은 형식으로 계정을 생성하면 된다.
계정은 생성하였지만 해당 계정(USEREX)으로 데이터베이스에 접속은 불가능하다. 데이터베이스에 접속할 수 있는 권한을 부여하지 않았기 때문이다. 권한을 부여하는 방법은 GRANT 명령어를 사용하며 형식은 아래와 같다.
USEREX 계정에 접속 권한을 부여하였고 정상적으로 데이터베이스에 접속이 가능해졌다. 이때 WITH ADMIN OPTION을 TO USEREX 뒤에 지정하면 자신이 부여받은 권한을 다른 계정에게 부여가 가능하다.
USEREX 계정은 데이터베이스에 접속할 수는 있게 되었지만 TABLE이나 VIEW, SEQUENCE 등을 생성할 수 있는 권한이 없다. 따라서 DBA 계정으로 USEREX 계정에 대하여 이러한 권한들을 부여해야 한다.
다른 계정에 대한 객체(테이블, 뷰 등)를 조회하거나, 삭제/추가/수정을 하기 위해서는 객체 권한을 부여해야 한다. 객체 권한을 부여하는 방법은 아래와 같다.
SCOTT 계정의 EMP 테이블에 대해서 USEREX 계정에게 테이블을 조회할 수 있는 권한을 부여해보면 아래와 같다.
USEREX 계정에서 EMP 테이블을 조회하기 위해서는 테이블명 앞에 해당 객체의 소유 계정명을 명시해야 한다.(SCOTT.EMP)
현재 사용자(계정)에 대해서 부여된 권한을 조회하기 위해서는 딕셔너리를 통해 검색이 가능하다. USER_TAB_PRIVS_MADE(사용자가 부여한 권한), USER_TAB_PRIVS_RECD(사용자에게 부여된 권한) 등이 있다.
사용자에게 부여한 권한을 제거(회수)하기 위해서는 REVOKE 명령어를 사용한다.
'IT > DB' 카테고리의 다른 글
Mysql federated (oracle dblink 와 같은 기능) - 물리적 다른 DB 연결 (0) | 2022.09.02 |
---|---|
오라클 정규식 (REGEXP) (1) | 2021.12.11 |
ORACLE 테이블 복사 (PK, INDEX 까지 복사하는 방법) (0) | 2021.12.11 |
시노님(SYNONYM) & 테이블 권한 부여 (1) | 2021.12.11 |
[참조] SQL Loader사용방법(상세 예시) (0) | 2021.11.18 |