오라클 INSERT 권한 확인 - olakeul INSERT gwonhan hwag-in

GRANT ANY OBJECT PRIVILEGE 시스템 권한(1, 2번 SQL로 확인 가능)을 가지고 있는 경우 타 사용자의 모든 객체에 대한 권한 부여 가능(DBA도 해당 권한이 있음)

제공하는 System Privilege 중 ‘TRUNCATE TABLE’ Privilege라는 것은 따로 존재하지 않으며, Table을 Truncate하기 위해서는 ‘DROP TABLE’ Privilege가 있으면 가능.

CREATE OR REPLACE PROCEDURE XXX_DBA.SP_TRUNC (pTable IN VARCHAR2, reuse IN VARCHAR2 DEFAULT 'N')
IS
cmd	VARCHAR2 (4000) := 'truncate table XXX.' || pTable; BEGIN
IF UPPER (pTable) IN (TB_RC_XXX, 'TB_CM_XXX') -- Truncate이 허용되는 테이블 목록
THEN
CASE
WHEN reuse = 'N' THEN
-- DROP STORAGE
cmd := cmd || ' DROP STORAGE'; 
WHEN reuse = 'Y'
THEN
-- REUSE STORAGE
cmd := cmd || ' REUSE STORAGE'; 
END CASE;
-- DBMS_OUTPUT.put_line (cmd); EXECUTE IMMEDIATE cmd;
ELSE
RAISE_APPLICATION_ERROR (-20101, 'Requested Table is not allowed truncate operation.');
END IF;
END SP_TRUNC;
/
  1. DROP STORAGE (디폴트) : 결과 테이블에 할당 된 익스텐트 수를 MINEXTENTS의 원래 설정으로 줄입니다.
해제 된 익스텐트는 시스템으로 리턴되어 다른 오브젝트에서 사용할 수 있습니다.
  1. DROP ALL STORAGE는 세그먼트 삭제.
TRUNCATE TABLE 문 외에도 DROP ALL STORAGE는 ALTER TABLE TRUNCATE (SUB) PARTITION 문에도 적용됩니다.이 옵션은 또한 절단중인 파티션과 연관된 종속 오브젝트 세그먼트를 삭제합니다.DROP ALL STORAGE는 클러스터에서 지원되지 않습니다.
  1. REUSE STORAGE : 기존 공간을 줄이지 않고 유지토록함.

1.7 시스템 권한

PrivilegeDescriptionADMIN

Enables a user to perform administrative tasks including checkpointing, backups, migration, and user creation and deletion.

ALTER ANY CACHE GROUPEnables a user to alter any cache group in the database.ALTER ANY INDEXEnables a user to alter any index in the database.

Note: There is no ALTER INDEX statement.

ALTER ANY MATERIALIZED VIEWEnables a user to alter any materialized view in the database.

Note: There is no ALTER MATERIALIZED VIEW statement.

ALTER ANY PROCEDUREEnables a user to alter any PL/SQL procedure, function or package in the database.ALTER ANY SEQUENCEEnables a user to alter any sequence in the database.

Note: There is no ALTER SEQUENCE statement.

ALTER ANY TABLEEnables a user to alter any table in the database.ALTER ANY VIEWEnables a user to alter any view in the database.

Note: There is no ALTER VIEW statement.

CACHE_MANAGER

Enables a user to perform operations related to cache groups.

CREATE ANY CACHE GROUPEnables a user to create a cache group owned by any user in the database.CREATE ANY INDEXEnables a user to create an index on any table or materialized view in the database.CREATE ANY MATERIALIZED VIEWEnables a user to create a materialized view owned by any user in the database.CREATE ANY PROCEDUREEnables a user to create a PL/SQL procedure, function or package owned by any user in the database.CREATE ANY SEQUENCEEnables a user to create a sequence owned by any user in the database.CREATE ANY SYNONYMEnables a user to create a private synonym owned by any user in the database.CREATE ANY TABLEEnables a user to create a table owned by any user in the database.CREATE ANY VIEWEnables a user to create a view owned by any user in the database.CREATE CACHE GROUP

Enables a user to create a cache group owned by that user.

CREATE MATERIALIZED VIEW

Enables a user to create a materialized view owned by that user.

CREATE PROCEDURE

Enables a user to create a PL/SQL procedure, function or package owned by that user.

CREATE PUBLIC SYNONYM

Enables a user to create a public synonym.

CREATE SEQUENCE

Enables a user to create a sequence owned by that user.

CREATE SESSION

Enables a user to create a connection to the database.

CREATE SYNONYM

Enables a user to create a private synonym.

CREATE TABLE

Enables a user to create a table owned by that user.

CREATE VIEW

Enables a user to create a view owned by that user.

DELETE ANY TABLEEnables a user to delete from any table in the database.DROP ANY CACHE GROUPEnables a user to drop any cache group in the database.DROP ANY INDEXEnables a user to drop any index in the database.DROP ANY MATERIALIZED VIEWEnables a user to drop any materialized view in the database.DROP ANY PROCEDUREEnables a user to drop any PL/SQL procedure, function or package in the database.DROP ANY SEQUENCEEnables a user to drop any sequence in the database.DROP ANY SYNONYMEnables a user to drop a synonym owned by any user in the database.DROP ANY TABLEEnables a user to drop any table in the database.DROP ANY VIEWEnables a user to drop any view in the database.DROP PUBLIC SYNONYM

Enables a user to drop a public synonym.

EXECUTE ANY PROCEDUREEnables a user to execute any PL/SQL procedure, function or package in the database.FLUSH ANY CACHE GROUPEnables a user to flush any cache group in the database.INSERT ANY TABLEEnables a user to insert into any table in the database. It also enables the user to insert into any table using the synonym, public or private, to that table.LOAD ANY CACHE GROUPEnables a user to load any cache group in the database.REFRESH ANY CACHE GROUPEnables a user to flush any cache group in the database.SELECT ANY SEQUENCEEnables a user to select from any sequence or synonym on a sequence in the database.SELECT ANY TABLEEnables a user to select from any table, view, materialized view, or synonym in the database.UNLOAD ANY CACHE GROUPEnables a user to unload any cache group in the database.UPDATE ANY TABLEEnables a user to update any table or synonym in the database.XLA

Enables a user to connect to a database as an XLA reader.

1.8 오브젝트 권한

The REFERENCES privilege on a parent table implicitly grants SELECT privilege on the parent table. The SELECT privilege enables a user to perform all operations on a sequence.|| A user can be granted the SELECT privilege on a synonym or a view without being explicitly granted the SELECT privilege on the originating table.PrivilegeObject typeDescriptionDELETE

Table||

Enables a user to delete from a table.

EXECUTE

PL/SQL package, procedure or function||

Enables a user to execute a PL/SQL package, procedure or function directly.

FLUSH

Cache group||

Enables a user to flush a cache group.

INDEX

Table or materialized view||

Enables a user to create an index on a table or materialized view.

INSERT

Table or synonym||

Enables a user to insert into a table or into the table through a synonym.

LOAD

Cache group||

Enables a user to load a cache group.

REFERENCESTable or materialized view

Enables a user to create a foreign key dependency on a table or materialized view.||

REFRESH

Cache group||

Enables a user to refresh a cache group.

SELECTTable, sequence, view, materialized view, or synonymEnables a user to select from a table, sequence, view, materialized view, or synonym.UNLOAD

Cache group||

Enables a user to unload a cache group.

UPDATE

Table||

Enables a user to update a table.

1.9 Privilege hierarchy

PrivilegeConfers these privilegesADMIN

All other privileges including CACHE_MANAGER

CREATE ANY INDEXINDEX (any table or materialized view)CREATE ANY MATERIALIZED VIEW

CREATE MATERIALIZED VIEW

CREATE ANY PROCEDURE

CREATE PROCEDURE

CREATE ANY SEQUENCE

CREATE SEQUENCE

CREATE ANY SYNONYM

CREATE SYNONYM

CREATE ANY TABLE

CREATE TABLE

CREATE ANY VIEW

CREATE VIEW

DELETE ANY TABLEDELETE (any table)EXECUTE ANY PROCEDUREEXECUTE (any procedure)INSERT ANY TABLEINSERT (any table)SELECT ANY SEQUENCESELECT (any sequence)SELECT ANY TABLESELECT (any table, view or materialized view)UPDATE ANY TABLEUPDATE (any table)


Cache group privileges have a separate hierarchy except that ADMIN confers the CACHE_MANAGER privilege.

The CACHE_MANAGER privilege confers these privileges:

CREATE ANY CACHE GROUP

ALTER ANY CACHE GROUP

DROP ANY CACHE GROUP

FLUSH ANY CACHE GROUP

LOAD ANY CACHE GROUP

UNLOAD ANY CACHE GROUP

REFRESH ANY CACHE GROUP

FLUSH (object)

LOAD (object)

UNLOAD (object)

REFRESH (object)

The CACHE_MANAGER privilege also includes the ability to start and stop the cache agent and the replication agent and to perform cache grid operations.

CREATE ANY CACHE GROUP confers the CREATE CACHE GROUP privilege for any cache group.

1.10 PUBLIC role

All users of the database have the PUBLIC role. In a newly created TimesTen database, by default PUBLIC has SELECT and EXECUTE privileges on various system tables and views and PL/SQL functions, procedures and packages. You can see the list of objects by using this query:

SELECT table_name, privilege FROM sys.dba_tab_privs WHERE grantee='PUBLIC';

Privileges that are granted to PUBLIC as part of database creation cannot be revoked. To see a list of these privileges, use this query: