전체보기: 525개의 글
테이블은 실제로 데이터들이 저장되는 곳 이라고 생각하면 쉽게 이해 할 수 있으며, CREATE TABLE 명령어를 이용해서 테이블을 생성 할 수 있다.테이블이란?- 테이블은 데이타베이스의 기본적인 데이타 저장 단위 이다.- 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며 레코드와 컬럼으로 구성 된다.- 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이, 그리고 레코드와 행이 동일시 되었다.- 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있다. 예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현 가능하다.- 테이블은 두 엔티티간의 관계를 표현할 수 있다. 즉 테이블은 고용자와 그들의 작업 숙련도 혹은 제품과 주문..
오라클 데이터베이스를 생성하면 기본적으로 몇 가지의 ROLE이 생성 된다. DBA_ROLES 데이터 사전을 통하여 미리 정의된ROLE을 조회 할 수 있다. SQL>SELECT * FROM DBA_ROLES; ROLE PASSWORD ---------------------- ----------- CONNECT NO RESOURCE NO DBA NO SELECT_CATALOG_ROLE NO EXECUTE_CATALOG_ROLE NO DELETE_CATALOG_ROLE NO EXP_FULL_DATABASE NO IMP_FULL_DATABASE NO .... 이 외에도 많이 ROLE이 존재하는데, 가장 많이 사용하는 세 가지만 설명 하겠다.CONNECT ROLE- 오라클에 접속 할 수 있는 세션 생성 및 테이블..
롤(ROLE) 이란 사용자에게 허가 할 수 있는 권한들의 집합 이라고 할 수 있다.롤(ROLE) 이란?- ROLE을 이용하면 권한 부여와 회수를 쉽게 할 수 있다.- ROLE은 CREATE ROLE권한을 가진 USER에 의해서 생성 된다.- 한 사용자가 여러개의 ROLL을 ACCESS할 수 있고, 여러 사용자에게 같은 ROLE을 부여할 수 있다.- 시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고, 취소 한다.- 사용자는 ROLE에 ROLE을 부여할 수 있다.- 오라클 데이터베이스를 설치하면 기본적으로 CONNECT, RESOURCE, DBAROLE이 제공 된다.아래의 그림처럼 DBA가 유저들에게 권한을 부여할 때 일일이 권한 하나하나씩을 지정을 한다면 몹시 불편할 것 입니..
객체권한은 USER가 소유하고 있는 특정 객체를 다른 사용자들이 엑세스 하거나 조작 할 수 있게 하기 위해 생성 한다.객체권한(Object Privileges) 이란?- 테이블이나 뷰, 시퀀스, 프로시저, 함수, 또는 패키지 중 지정된 한 객체에 특별한 작업을 수행 할 수 있게 한다.- 객체 소유자는 다른 사용자에게 특정 객체권한을 부여 할 수 있다.- PUBLIC으로 권한을 부여하면 회수할 때도 PUBLIC으로 해야 한다.- 기본적으로 소유한 객체에 대해서는 모든 권한이 자동적으로 획득된다.- WITH GRANT OPTION 옵션은 ROLE에 권한을 부여할 때는 사용할 수 없다.객체에 따른 권한 목록 예객체권한테이블뷰시퀀스프로시저ALTER○○DELETE○○EXECUTE○INDEX○INSERT○○SELE..
오라클에서 권한(Privilege)은 특정 타입의 SQL문을 실행하거나 데이터베이스나 객체에 접근할 수 있는 권리이다.시스템권한(System Privileges)이란?- 시스템권한은 사용자가 데이터베이스에서 특정 작업을 수행 할 수 있도록 한다- 권한의 ANY 키워드는 사용자가 모든 스키마에서 권한을 가짐을 의미 한다.- GRANT 명령은 사용자 또는 ROLE에 대해서 권한을 부여 할 수 있다.- REVOKE 명령은 권한을 회수 한다.대표적인 시스템권한- CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한- CREATE ROLE : 오라클 데이터베이스 역할을 생성할 수 있는 권한- CREATE VIEW : 뷰의 생성 권한- ALTER USER : 생성한 사용자의 정의를 변경할 수 있는 권..
1. 패키지를 사용해야 하는 이유 1) 정보 은닉화 2) 유지보수의 용이성 3) 성능 향상 4) 오버로딩 가능 2. 패키지 구성요소 1) 명세 (spec) : body 에서 구현 할 프로시저, 함수, 전역변수의 이름을 선언 2) 몸체 (body): 실제 구현코드 ( 프로시저 , 함수 ) 3. 패키지의 오버로딩 명세 (spec) 예제 CREATE OR REPLACE PACKAGE OVER_PACKISPROCEDURE ADD_DEPT( P_DEPT_NO IN DEPT.DEPT_NO%TYPE , P_DEPT_NM IN DEPT.DEPT_NM%TYPE DEFAULT 'UNKNOWN', P_LOC IN DEPT.LOC%TYPE DEFAULT 0); PROCEDURE ADD_DEPT( P_DEPT_NM IN DEP..
CREATE TABLE LOGIN_INFO ( USER_ID VARCHAR2(20), LOGIN_DATE DATE, ACTION VARCHAR2(50) ); 1. 오라클에 접속할 때마다 LOGIN_INFO 테이블에 접속정보가 남겨지게 하시오. CREATE OR REPLACE TRIGGER LOGIN_INFO AFTER LOGON ON DATABASEBEGIN INSERT INTO LOGIN_INFO VALUES ('CHPARK',TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),'로그인 액션 취함');END;/ 2. DB를 SHUTDOWN 하기 전에 LOGIN_INFO 테이블에 접속정보가 남겨지게 하시오. CREATE OR REPLACE TRIGGER LOGIN_INFO BEFORE SHU..
1. Trigger (트리거) 의 종류 1) DML 트리거 2) DDL 트리거 3) DB 작업에 대한 트리거 ( log on, log off, startup, shutdown ) 트리거란 ? 1) INSERT, UPDATE, DELETE 문이 TABLE에 대해 묵시적으로 수행되는 PROCEDURE이다. 2) 트리거는 TABLE과는 별도로 DATABASE에 저장된다. 3) 트리거는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있다. 4) 행트리거 : 컬럼의 각각의 행의 데이터 행 변화가 생길 때마다 실행되며, 그 데이터 행의 실제값을 제어할 수 있다. 5) 문장 트리거 : 트리거 사건에 의해 단 한번 실행되며, 컬럼의 각 데이터 행을 제어할 수 없다. ======================..
Oracle 스키마 확인 ※ Oracle SID 확인 SQL> select instance from v$thread; ※ Oracle DB_NAME 확인 SQL> select name from v$database; ※ Oracle User 확인 SQL> select * from all_users; ※ 등록된 User 목록 보기 SQL> select username, user_id from dba_users order by username; ※ User가 소유한 모든 테이블 보기 SQL> select table_name from user_tables; ※ 사용자 정보 확인 SQL> select username, default_tablespace,temporary_tablespace from dba_user..
1. RAISE_APPLICATION_ERROR를 사용하여 오류코드 -20000부터 -20999의 범위 내에서 사용자 정의 예외를 만들 수 있다. - STEP 1: DECLARE OR IS ... 예외의 이름을 선언 (선언절)- STEP 2: RAISE문을 사용하여 직접적으로 예외를 발생시킨다. (실행절)- STEP 3: 예외가 발생할 경우 해당 예외를 참조한다. (예외절) ex) step 1: 예외의 이름을 선언 sync_exec_day Exception;V_SYNC_DAY VARCHAR2(4) := TO_CHAR(SYSDATE,'YD'); ex) step 2: RAISE 문을 사용하여 직접적으로 예외를 발생시킨다. IF V_SYNC_DAY IN ('목','일') THENRAISE sync_exec_d..