반응형
Oracle의 ANY 권한
ANY 권한은 데이터베이스 관리나 운영에서 특정 사용자가 모든 스키마에 걸쳐 작업을 수행할 수 있도록 허용하는 권한입니다. ANY 권한은 주로 데이터베이스 관리자(DBA)나 특정 작업을 수행하는 데 있어 전역적인 권한이 필요한 사용자에게 부여됩니다. 그러나 잘못 사용될 경우 보안 문제를 초래할 수 있기 때문에 신중하게 관리해야 합니다.
ANY 권한의 종류
Oracle에서 제공하는 대표적인 ANY 권한은 다음과 같습니다:
- SELECT ANY TABLE
- 모든 테이블에 대해 SELECT(조회) 권한을 부여합니다.
- 부여 시 모든 스키마의 테이블에 대해 데이터를 조회할 수 있으며, 특정 스키마에 제한되지 않습니다.
- INSERT ANY TABLE
- 모든 테이블에 대해 INSERT(삽입) 권한을 부여합니다.
- 모든 스키마의 테이블에 데이터를 삽입할 수 있습니다.
- UPDATE ANY TABLE
- 모든 테이블에 대해 UPDATE(수정) 권한을 부여합니다.
- 모든 스키마의 테이블에서 데이터를 수정할 수 있습니다.
- DELETE ANY TABLE
- 모든 테이블에 대해 DELETE(삭제) 권한을 부여합니다.
- 모든 스키마의 테이블에서 데이터를 삭제할 수 있습니다.
- EXECUTE ANY PROCEDURE
- 모든 스키마의 프로시저나 함수를 실행할 수 있는 권한을 부여합니다.
- 이 권한을 부여받은 사용자는 모든 스키마에서 작성된 PL/SQL 프로시저 및 함수를 실행할 수 있습니다.
- CREATE ANY TABLE
- 모든 스키마에 테이블을 생성할 수 있는 권한을 부여합니다.
- 특정 사용자 스키마뿐만 아니라 다른 스키마에서도 테이블을 생성할 수 있습니다.
권한부여
1. 권한부여
GRANT CREATE ANY TABLE TO DAMIN;
-- GRANT CREATE ANY TABLE, SELECT ANY TABLE TO DAMIN;처럼 여러개 부여도 가능
/* 시스템 권한 부여 리스트 */
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
DAMIN으로 접속해서 테스트
1. 다른 스키마에 테이블을 생성할 수 있는지
2. 다른테이블에 권한부여가 가능한지
[/home/oracle]$ sqlplus damin/
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jun 25 10:26:08 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Enter password:
Last Successful login time: Fri Jun 09 2023 14:16:39 +09:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> create table scott.test(id number(5),
2 name varchar2(15));
Table created.
SQL> GRANT CREATE TABLE TO DAMIN2 WITH ADMIN OPTION;
Grant succeeded.
SQL>
다시 SYS계정으로 접속해서 DAMIN의 ANY TABLE 권한을 REVOKE 시킨다.
REVOKE CREATE ANY TABLE FROM DAMIN;
DAMIN2에 접속해서 CREATE TABLE에 대한 권한이 있는지 확인
SQL> conn DAMIN2
Enter password:
Connected.
SQL> create table test(id number(5),
2 name varchar2(15));
Table created.
여전히 생성가능함으로 WITH ADMIN OPTION은 주의해서 사용해야한다.
반응형
'ORACLE > Oracle_SQL' 카테고리의 다른 글
인덱스 관련 쿼리 정리 (0) | 2023.07.02 |
---|---|
인덱스 (0) | 2023.06.26 |
인덱스 생성 속도 향상 (NOLOGGING, PARALLEL) (0) | 2023.06.24 |
시스템 권한 | WITH GRANT/ADMIN OPTION (0) | 2023.06.09 |
DISTINCT, GROUP BY 중복 제거 (0) | 2023.06.04 |