헤르메스 LIFE

[Tibero] Tibero 관련 쿼리 본문

Database

[Tibero] Tibero 관련 쿼리

헤르메스의날개 2024. 5. 21. 17:36
728x90

Lock 확인

-- lock SQL 확인
SELECT A.SID, A.SERIAL#, A.SQL_ID, C.OBJECT_NAME, D.SQL_TEXT
  FROM V$SESSION   A
     , V$LOCK      B
     , DBA_OBJECTS C
     , V$SQLTEXT   D
 WHERE A.SID         = B.SESS_ID
   AND B.ID1         = C.OBJECT_ID
   AND A.SQL_ID      = D.SQL_ID
   AND B.TYPE        = 'WLOCK_DML'
--   AND C.OBJECT_NAME = '테이블명';
;


-- ALTER SYSTEM KILL SESSION (SID, SERIAL#);
ALTER SYSTEM KILL SESSION (145, 3686306);

User Object 내용 검색

SELECT
	T1.OBJECT_ID
	, T1.OBJECT_NAME
	, T1.OBJECT_TYPE
	, T2.TEXT
FROM
	USER_OBJECTS T1
	INNER JOIN USER_SOURCE T2 ON T1.OBJECT_NAME = T2.NAME
WHERE
	T1.OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION', 'PACKAGE BODY', 'TRIGGER')
	AND T2.TEXT LIKE '%TEST_TABLE%'  /* 찾으려는 프로시저 또는 함수 내 문구 입력 */;

User Source 내용 검색

/*Procedure검색*/
SELECT * 
 FROM USER_SOURCE
WHERE TYPE = 'PROCEDURE'
  AND TEXT LIKE '%찾고자하는 텍스트%'
ORDER BY NAME, LINE

/*Function검색*/
SELECT * 
 FROM USER_SOURCE
WHERE TYPE = 'FUNCTION'
  AND TEXT LIKE '%찾고자하는 텍스트%'
ORDER BY NAME, LINE

JOB 확인

SELECT *
FROM ALL_JOBS

SELECT *
FROM USER_JOBS

프로시저 목록 검색

SELECT *
  FROM USER_PROCEDURES
 WHERE OBJECT_NAME LIKE '%PRC_%'

User Object 검색

SELECT *
  FROM USER_OBJECT
 WHERE OBJECT_TYPE = 'TABLE'
;

/*
-- OBJECT_TYPE 의 종류
TABLE SUBPARTITION
INDEX PARTITION
TABLE PATITION
SEQUENCE
LOB PARTITION
PROCEDURE
LOB
INDEX SUBPARTITION
PACKAGE
PACKAGE BODY
TRIGGER
TABLE
FUNCTION
INDEX
VIEW
TYPE
CLUSTER
*/

User Views 검색

SELECT *
  FROM USER_VIEWS;

사용자 권한 할당문 생성

BEGIN 

    FOR X IN (
        SELECT 'GRANT '|| PRIVILEGE || ' TO HERMESWING;' AS GRANT_TEXT
          FROM DBA_SYS_PRIVS
            WHERE GRANTEE = '사용자 계정'
        ) 
    LOOP
    
        --EXECUTE IMMEDIATE X.GRANT_TEXT;
        DBMS_OUTPUT.PUT_LINE (X.GRANT_TEXT);
        
    END LOOP;
    
END;

테이블 컬럼정보 조회

SELECT A.TABLE_NAME,
       A.COMMENTS,
       B.COLUMN_NAME,
       B.COL_COMMENTS,
       C.COL_NO,
       C.DATA_TYPE,
       C.DATA_LENGTH,
       D.CONSTRAINT_TYPE,
       D.POSITION,
       C.NOTNULL_YN
 FROM (
        SELECT TABLE_NAME,
               COMMENTS
          FROM ALL_TAB_COMMENTS
         WHERE OWNER = '#사용자 계정#'
      ) A 
    , (
        SELECT TABLE_NAME,
               COLUMN_NAME,
               COMMENTS AS COL_COMMENTS
          FROM ALL_COL_COMMENTS
         WHERE OWNER = '#사용자 계정#'
      ) B
    , (
        SELECT TABLE_NAME,
               COLUMN_NAME,
               TO_NUMBER(COLUMN_ID) +1 AS COL_NO,
               DATA_TYPE,
               DATA_LENGTH,
               CASE WHEN NULLABLE = 'Y' THEN 'N' ELSE 'Y' END NOTNULL_YN
          FROM ALL_TAB_COLUMNS A
         WHERE OWNER = '#사용자 계정#'
         ORDER BY TABLE_NAME, COLUMN_NAME
      ) C
    , ( 
        SELECT A.CONSTRAINT_NAME,
               A.TABLE_NAME,
               A.COLUMN_NAME,
               DECODE(B.CONSTRAINT_TYPE, 'P', 'Y', 'N') AS CONSTRAINT_TYPE,
               A.POSITION+1 AS POSITION
          FROM USER_CONS_COLUMNS A RIGHT JOIN USER_CONSTRAINTS B ON A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
         WHERE A.OWNER = '#사용자 계정#'
           AND B.CONSTRAINT_TYPE = 'P'
         ORDER BY TABLE_NAME, COLUMN_NAME, CONSTRAINT_TYPE
     ) D
 WHERE A.TABLE_NAME  = B.TABLE_NAME
   AND B.TABLE_NAME  = C.TABLE_NAME
   AND B.COLUMN_NAME = C.COLUMN_NAME
   AND B.TABLE_NAME  = D.TABLE_NAME (+)
   AND B.COLUMN_NAME = D.COLUMN_NAME (+)
;

 

사용자 정보 검색

사용자 정보 조회 테이블

1. USER_TABLES : 테이블정보
2. USER_TAB_COLUMNS : 컬럼정보
3. USER_OBJECTS : 모든 오브젝트의 정보를 알려줌
4. USER_VIEWS : 뷰에 대한 정보
5. USER_SYNONYMS : 동의의 정보
6. USER_SEQUENCES : 시퀀스 정보
7. USER_CONSTRAINTS : 제약조건에 대한 정보
8. USER_CONS_COLUMNS : 제약조건에 대한 컬럼정보
9. USER_TAB_COMMENTS : 테이블/뷰에 대한 주석
10. USER_COL_COMMENTS : 컬럼에 대한 주석
11. USER_INDEXES : 인덱스에 대한 정보
12. USER_IND_COLUMNS : 인덱스 컬럼에 대한 정보
13. USER_CLUSTERS : 클러스터에 대한 정보
14. USER_DB_LINKS : 데이터베이스 링크 정보
15. USER_TRIGGERS : 트리거 정보
16. USER_SOURCE : 프로시저, 함수, 패키지 정보
17. USER_ERRORS : 코드 에러에 대한 정보
18. USER_TABLESPACES : 테이블 스페이스 정보
19. USER_USERS : 사용자에 대한 정보
20. USER_TAB_PRIVS : 테이블 권한에 대한 정보
21. USER_COL_PRIVS : 테이블열 권한에 대한 정보
22. USER_SYS_PRIVS : 시스템 권한에 대한 정보

테이블 스페이스 생성

CREATE TABLESPACE TS_TBL
    DATAFILE '/tbdata/tibero_tbl.tbf' SIZE 1000M AUTOEXTEND OFF
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
    
CREATE TABLESPACE TS_IDX
    DATAFILE '/tbdata/tibero_idx.tbf' SIZE 1000M AUTOEXTEND OFF
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

사용자 생성

/**
CREATE USER ${생성될 사용자 계정}
    IDENTIFIED BY ${생성될 사용자 계정 비밀번호}
    DEFAULT TABLESPACE ${테이블 스페이스 명};
*/
CREATE USER HERMESWING
    IDENTIFIED BY TIBERO
    DEFAULT TABLESPACE TS_TBL;

사용자 삭제

/* DROP USER ${사용자 계정} CASCADE */
DROP USER HERMESWING CASCADE;

계정 권한 부여

/* GRANT DBA TO ${사용자 계정} */
GRANT RESOURCE, CONNECT, DBA TO HERMESWING;

/* REVOKE DBA FROM ${사용자 계정} */
REVOKE DBA FROM HERMESWING;

/* GRANT INSERT, UPDATE, DELETE ON ${USER_NAME}.${테이블명} TO ${사용자 계정} */
GRANT INSERT, UPDATE, DELETE ON MY_TIBERO.TBL_USER TO HERMESWING;
GRANT INSERT, UPDATE, DELETE ANY TABLE TO HERMESWING;
GRANT SELECT ANY TABLE TO HERMESWING;

/* REVOKE DBA FROM ${사용자 계정} */
REVOKE INSERT FROM HERMESWING;

/* 함수 실행 권한 GRANT EXECUTE ON ${함수명} TO ${사용자 계정} */
GRANT EXECUTE ON FN_CREATE_USER TO HERMESWING;

/* 전체권한 */
GRANT DROP USER TO HERMESWING;
GRANT LOCK ANY TABLE TO HERMESWING;
GRANT SELECT ANY TABLE TO HERMESWING;
GRANT INSERT ANY TABLE TO HERMESWING;
GRANT UPDATE ANY TABLE TO HERMESWING;
GRANT DELETE ANY TABLE TO HERMESWING;
GRANT SYSDBA TO HERMESWING;
GRANT CREATE VIEW TO HERMESWING;
GRANT SELECT ANY SEQUENCE TO HERMESWING;
GRANT GRANT ANY ROLE TO HERMESWING;
GRANT EXECUTE ANY PROCEDURE TO HERMESWING;
GRANT DROP ANY TRIGGER TO HERMESWING;
GRANT GRANT ANY PRIVILEGE TO HERMESWING;
GRANT GRANT ANY OBJECT PRIVILEGE TO HERMESWING;
GRANT EXECUTE ANY LIBRARY TO HERMESWING;
GRANT CREATE ANY TABLE TO HERMESWING;

Synonym 생성

GRANT CREATE SYNONYM TO HERMESWING;
GRANT CREATE PUBLIC SYNONYM TO HERMESWING;
GRANT DROP PUBLIC SYNONYM TO HERMESWING;

CREATE SYNONYM T_USER_M FOR TBL_USER_MASTER ;
CREATE PUBLIC SYNONYM T_DEPT_M FOR TBL_DEPT_MASTER ;

 

 

 

 

728x90