오라클에서 다른 스키마의 함수 실행(사용) 권한을 부여하기 위해서는 "GRANT EXECUTE" 구문을 사용하면 된다. 그리고 함수의 생성 또는 컴파일 권한을 부여하기 위해서는 "GRANT CREATE FUNCTION" 구문을 사용할 수 없고 "GRANT CREATE PROCEDURE" 구문을 사용하여 함수 생성 권한을 부여할 수 있다. 목차 함수 실행 권한 부여 (EXECUTE) 함수 생성 권한 부여 (CREATE) 함수 실행 권한 부여 (EXECUTE) 특정 함수의 실행 권한 부여 -- 함수 실행 권한 부여 GRANT EXECUTE ON hr.fn_helloworld TO scott; -- 함수 실행 권한 제거(회수) REVOKE EXECUTE ON hr.fn_helloworld FROM scott;..
오라클에서 다른 스키마(사용자)에 생성된 테이블의 DML(SELECT, INSERT, UPDATE, DELETE ) 권한을 부여하기 위해서는 GRANT 문을 사용하면 된다. GRANT CREATE ANY TABLE 권한을 부여하면 다른 스키마에 테이블을 생성할 수 있는 권한이 부여된다. 자신의 스키마에는 GRANT CREATE TABLE 권한만 부여하면 생성, 삭제, DML 작업이 가능하다. 목차 다른 스키마 테이블 DML 권한 부여 다른 스키마 테이블 DML 권한 제거 다른 스키마 테이블 생성, 수정 제거 권한 다른 스키마 인덱스 생성, 수정 제거 권한 자신의 스키마에 테이블 생성 권한 부여 권한을 부여하기 위해서는 DBA 계정 또는 권한 부여가 가능한 계정으로 로그인 후 권한을 부여해야 한다. 다른 ..
오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생성 및 데이터 입력(INSERT)이 가능하다. 세션 권한이 부여되지 않으면 사용자가 로그인할 때 ORA-01045 오류가 발생할 수 있다. 목차 CREATE SESSION (데이터베이스 접속 권한) CREATE TABLE (테이블 생성 권한) UNLIMITED TABLESPACE (테이블스페이스 사용 권한) CREATE INDEX (인덱스 생성 권한) 권한 회수(제거) 방법 (REVOKE) 시스템 권한 부여 방법 정리 CREATE SESSION (데이터베이스 접속 권한) GRANT CREATE SESSION ..
오라클에서 사용자(유저) 계정의 기본 테이블스페이스, 임시 테이블스페이스를 변경할 때는 ALTER USER 문을 사용하면 된다. QUOTA를 사용하여 기본 테이블스페이스의 용량 할당 또는 사용량을 제한할 수 있다. 사용자의 테이블스페이스명 변경 및 용량 변경 방법은 아래를 참고하면 된다. 기본 테이블 스페이스 변경 ALTER USER scott DEFAULT TABLESPACE tblspace1; ALTER USER [사용자명] DEFAULT TABLESPACE [변경할 테이블스페이스명] ALTER USER 문을 사용하여 사용의 테이블스페이스를 변경할 수 있다. 기본 테이블 스페이스 할당 용량 변경 ALTER USER scott QUOTA 10M ON tblspace1; ALTER USER [사용자명] ..
오라클에서 사용자(유저) 계정의 락(Lock)을 해제하기 위해서는 ALTER USER 문을 사용하면 된다. 사용자 계정의 ACCOUNT 속성을 UNLOCK으로 바꾸면 잠금이 해제되고 LOCK로 바꾸면 계정이 잠기게 된다. 사용자의 계정이 잠금 상태인지 확인하기 위해서는 DBA_USERS 시스템 뷰를 조회하면 확인할 수 있다. 사용자 계정 잠금 해제 방법 ALTER USER scott ACCOUNT UNLOCK; ALTER USER [사용자명] ACCOUNT UNLOCK ALTER USER 문을 사용하여 사용자 계정 잠금을 해제할 수 있다. 사용자 계정을 잠그고 싶을 때는 ALTER USER scott ACCOUNT LOCK; 을 사용하면 된다. 사용자 계정 잠금 여부 조회 방법 SELECT * FROM ..
오라클 사용자(유저) 계정의 비밀번호를 변경하기 위해서는 ALTER USER 문을 사용하며 기존 비밀번호가 새로운 비밀번호로 초기화된다. 사용자의 분실한 비밀번호를 찾기 및 확인하는 방법은 없으며 새로운 비밀번호로 재설정해야 한다. 변경할 비밀번호에 특수문자가 포함되어 있으면 쌍따옴표로 비밀번호를 감싼 후 변경해야 한다. 사용자 비밀번호 변경 ALTER USER scott IDENTIFIED BY tiger123; ALTER USER [사용자명] IDENTIFIED BY [새로운 비밀번호] ALTER USER 문을 실행하면 해당 사용자는 새로운 비밀번호로 변경된다. 사용자 비밀번호에 특수문자가 있을 경우 쌍따옴표 사용 ALTER USER scott IDENTIFIED BY "tiger123!@#"; 비밀..
오라클에서 유저의 계정을 생성할 때는 CREATE USER 문을 사용한다. 사용자를 생성할 때 테이블스페이스, 사용자 최초 로그인 시 암호 변경 등을 설정할 수 있으며, 오라클 12c 버전부터 사용자를 생성할 때 ORA-65096 오류가 발생할 수 있는데 이럴 때는 사용자명 앞에 c##을 붙여주면 된다. 목차 사용자 생성 (CREATE USER) 사용자 생성 오류 처리 (오라클 12c 이상) 사용자 생성 상세 설정 (테이블스페이스 등) 사용자 삭제 (DROP USER) 사용자 생성 (CREATE USER) CREATE USER scott IDENTIFIED BY tiger; CREATE USER [사용자명] IDENTIFIED BY [암호] 오라클 12c 버전부터 사용자명에 c##을 붙이지 않으면 오류가..
오라클에서 동명이인을 찾기 위해서는 분석함수(OVER 절)를 사용하거나 GROUP BY ~ HAVING 절을 사용할 수 있다. 그 외에도 서브 쿼리 등을 활용할 수 있겠지만 분석함수를 사용하는 것이 가장 효율적인 듯하다. 동명이인은 동일한 이름이 여러 건 조회되었을 경우일 수도 있고, 동일한 이름이 여러 건 조회되고 동일한 이름 내에서 생년월일 등 추가로 식별할 수 있는 조건이 다를 경우 동명이인이라고 판단할 수 있다. 목차 이름만으로 동명이인 찾기 이름 + 생년월일로 동명이인 찾기 동명이인 여부를 Y, N으로 표시하기 GROUP BY ~ HAVING으로 동명이인 찾기 이름만으로 동명이인 찾기 WITH emp_t(ename, birthdate, job) AS ( SELECT '스미스', '1982-01-..
오라클에서 문자열 문자열을 나타낼 때 작은따옴표(홑 따옴표, 싱글 쿼터)를 사용하기 때문에 문자열 내부에 작은따옴표를 넣기 위해서는 추가적인 작업이 필요하다. 일반적인 프로그래밍 언어에서 이스케이프 문자를 표시할 때 백 슬래시(\)를 사용하여 작은따옴표를 ( \' ) 이렇게 처리하여 표시한다. 오라클에서는 백 슬래시 대신 작은따옴표를 한번 더 사용하여( '' ) 처리하면 된다. 이 방법 외에도 CHR() 함수를 사용하여 문자열을 합치는 방법도 있다. 목차 작은따옴표를 두 번 연속으로 입력하는 방법 CHR() 함수를 사용하는 방법 작은따옴표를 두 번 연속으로 입력 SELECT 'Oracle SQL Developer' AS str1 , 'Oracle ''SQL'' Developer' AS str2 FROM ..
오라클에서 쿼리문을 작성할 때 문자열의 마지막 콤마(쉼표)를 제거해야 하는 상황이 자주 발생한다. 문자열의 마지막 문자를 제거하는 방법은 딱 정해져 있지 않으며 상황에 따라서 다양한 방법을 사용할 수 있다. 아래는 마지막 문자를 조금 더 효율적으로 제거할 수 있는 방법이며, 아래의 기능을 이해한다면 다양하게 활용할 수 있을 것이다. 목차 RTRIM() 함수로 마지막 콤마 제거 REGEXP_REPLACE() 함수로 마지막 콤마 제거 SUBSTR() 함수로 마지막 콤마 제거 RTRIM() 함수로 마지막 콤마 제거 WITH emp_t(enames) AS ( SELECT 'BLAKE,CLARK,JONES,' FROM dual ) SELECT enames , RTRIM(enames, ',') AS enames2 ..