728x90
반응형

DB (데이터베이스)/Oracle (오라클) 56

[Oracle] oracle 특정 값 기준 계산하기 (SUMIF

oracle에서 엑셀의 SUMIF 기능을 사용하고 싶을 때 case when문으로 작성하는 방법에 대해 알아보자 엑셀의 SUMIF는 범위 내에서 특정 조건에 해당하는 값만 더하는 함수이다. 예를들어 {1,2,3,4,5} 의 집합이 있다고 가정하자. 여기서 3보다 크거나 같은 수의 합을 구하는 것이 SUMIF함수이다. oracle에서 sql문으로 작성하려면 case when과 sum을 적절히 섞어서 사용하면 된다. 예를들어 위와 같이 test_a라는 테이블에 데이터가 있다고 가정하자. SELECT sum(CASE WHEN value >= 3 THEN value ELSE 0 END) AS positive, sum(CASE WHEN value 위 처럼 sum과 case when 의 중첩으로 SUMIF와 동일..

[Oracle] Oracle audit_trail파라미터 설정방법

oracle DB에서 audit_trail을 설정 하는 방법에 대해 알아보자우선 oracle audit기능에 대해 설명해보자면.  AUDIT기능은 oracle DB의 사용자 행동을 감시하는 목적으로 사용된다. 이 기능을 통해 어떤 사용자가, 어떤 테이블을 언제 사용하고, 어떤 작업을 하는지 기록하여 확인할 수 있게된다1. audit기능 활성화-- DB에 sysdba로 접속한다.sqlplus "/as sysdba"-- audit_trail 파라미터 조회show parameter audit_trail;sqlplus 에서 show parameter명령어를 통해 audit_trail의 값을 확인한다. 현재 'NONE'으로 되어있다. audit_trail에는 설정 할 수 있는 값이 3가지가 있다. 아래는 설정할 ..

[Oracle] oracle listener 보안 설정

oracle 의 listener 보안 설정 중 하나인 ADMIN_RESTRICTIONS_LISTENER=ON 설정에 대해 알아보자 이 설정이 활성화 되면 Oracle 리스너에 대한 관리자 명령(lsnrctl)을 로컬에서만 실행할 수 있으며,원격 접속을 통한 리스너 관리가 불가능해진다. 이는 리스너 보안을 강화하여 외부로부터의 불필요한 접근을 방지하는 역할을 한다. 1. 적용방법 리스너 파일을 연다. 리스너 파일의 위치는 일반적으로 $ORACLE_HOME/network/admin/listener.ora 에 위치해있다. 위와 같이 리스너 파일 마지막 줄에 "ADMIN_RESTRICTIONS_LISTENER=ON" 를 입력한다.

[Oracle] oracle audit_trail로 계정관리 이벤트 감사 방법

audit_trail로 계정 관리 이벤트 감사 방법에 대해 알아보자 2024.06.03 - [DB (데이터베이스)/Oracle (오라클)] - [Oracle] Oracle audit_trail파라미터 설정방법 [Oracle] Oracle audit_trail파라미터 설정방법oracle DB에서 audit_trail을 설정 하는 방법에 대해 알아보자우선 oracle audit기능에 대해 설명해보자면.  AUDIT기능은 oracle DB의 사용자 행동을 감시하는 목적으로 사용된다. 이 기능을 통해 어seungbae-db.tistory.com위 글에서 audit_trail을 설정 하는 방법에 대해 알아보았다. audit_trail로 계정관리 감사에 방법에 대해 알아보자 우선 계정관리 이벤트의 종류는 * 사용자..

[Oracle] Oracle audit_trail로 계정 로그인 성공 및 실패 이벤트 감사 방법

audit_trail로 계정 로그인 성공 및 실패 이벤트 감사 방법에 대해서 알아보자2024.06.03 - [DB (데이터베이스)/Oracle (오라클)] - [Oracle] Oracle audit_trail파라미터 설정방법위 글에서 audit_trail을 설정하는 방법에 대해 알아봤다. 이 후 어떤 감사를 설정할지 하나하나 알아보자 우선 계정 로그인 성공 및 실패 이벤트 감사하는 방법에 대해 알아보자. 1. session 감사 활성화 -- 성공한 로그인 시도 감사audit session;-- 실패한 로그인 시도 감사audit session whenever not successful;위 sql문을 통해 로그인 감사 활성화 시킬 수 있다. 2. session 감사 활성화 확인SELECT *FROM DBA_..

[Oracle] oracle password 재사용 불가 설정 (PASSWORD_REUSE_TIME, PASSWORD_REUSE_MAX)

oracle의 PASSWORD 재사용이 불가능 하도록 하는 방법 ORACLE의 profile설정에는 password재사용이 불가능하도록 설정하는 옵션이 있습니다.  1. 설명 PASSWORD_REUSE_TIME : 특정 기간동안 이전에 사용했던 비밀번호를 다시 사용할 수 없도록 설정하는 매개변수 (일)* UNLIMITED : 비밀번호 재사용 시간 제한이 없음 * 숫자 값 : 비밀번호를 다시 사용한 수 없도록 하는 기간 입니다. PASSWORD_REUSE_MAX : 사용자가 일정 횟수의 다른 비밀번호를 사용하기 전까지 같인 비밀번호를 다시 사용할 수 없도록 제한* UNLIMITED : 비밀번호 재사용 횟수 제한이 없음 * 숫자 값 : 사용자가 다시 사용할 수 있는 비밀번호 수를 지정. 예를 들어 '10'값..

[Oracle] oracle verify function 적용방법

PASSWORD_VERIFY_FUNCTION 은 ORACLE에서 제공하는 암호의 복잡합성과 타당성을 인증하는 함수이다. PASSWORD_VERIFY_FUNCTION을 적용하는 방법에 대해서 알아보자 1. verify_function_19c 함수 생성 sql> @?/rdbms/admin/utlpwdmg.sql위 sql을 실행시켜 verify_function_19c를 생성한다. 이때 @?는 $ORACLE_HOME을 지정해주는 문자이다.@? 대신에 $ORACLE_HOME의 위치를 직접 지정해 주어도된다. ※중요!!  utlpwdmg.sql을 실행시키면 DEFAULT PROFILE의 값이 변경된다. 예를들어 DEFAULT PROFILE의 PASSWORD_LIFE_TIME이 UNLIMITED였는데 utlpwdmg..

[Oracle] oracle UTL_FILE 패키지로 파일 생성하고 내용쓰기

Oracle UTL_FILE패키지를 이용해서 DB에서 OS에 파일을 생성하고, 내용을 작성할 수 있다. 예시를 통해 알아보자 1. oracle directory생성 SELECT *FROM dba_directories을 통해서 현재 DB의 directory를 볼 수 있다. 나는 C:\test 라는 경로에 파일을 생성하고 싶기 때문에 C:\test 를 oracle directory에 등록을 해줘야 한다. -- create directory as '';CREATE directory TEST_DIR AS 'C:\test';위와 같이 TEST_DIR이라는 oracle directory를 만들어 주었다. 위와 같이 지정이 되었다.  2. 권한부여 -- GRANT READ, WRITE ON directory tes..

[Oracle] oracle PLS-00201 : identifier must be declared 원인, 해결

PLS-00201 : identifier 'A' must be declared 라는 애러메시지 해결방안에 대해 알아보자. 1. 원인  pl/sql에서 변수에 데이터타입에 맞지 않는 데이터를 대입했을 경우에 애러가 발생한다.  DECLARE A VARCHAR2(100);BEGIN A := TEST;END;위와 같은 구문에서 애러가 발생한다. 이유는 A := TEST; 가 아니라 A := 'TEST'; 라고 작성해야 하기 때문이다.하지만 sqlplus 에서 이 pl/sql파일을 .sql파일로 저장하고 실행을 할 때 문제가 생긴다. DECLARE A VARCHAR2(100);BEGIN A := &1;END;만약 .sql파일로 저장을 하고 파라미터를 받아야 할 경우 대부분 위와 같이 작성하여 실수를 저지른다.이..

[Oracle] oracle error Warning : too many parse errors 원인, 해결

oracle alert.log에서 WARNING : too many parse error발생한 경우 원인과 해결방안에 대해 알아보자.   1. 원인 oracle 구문 에러가 많이 발생 insert into INFRA.test values ('1', '2');이런식의 정상적인 쿼리가 아닌  insert innt INFRA.test values ('1', '2');위 처럼 오타를 내면 parsing과정에서 애러가 발생한다. 이 애러가 굉장히 많은 횟수의 경우 alter log에 "WARNING : too many parse error" 메시지가 뜬다 2. 테스트 리눅스 환경에서 test.sh라는 쉘 스크립트를 만들어 준다. test.sh#!/bin/bashfor ((i=1; i @test.sql &donew..

728x90
반응형