loading

새소식

RDB/Oracle

[Oracle] 사용자 생성 및 권한 부여하기(ORA-65096 오류 원인 및 해결 방법)

  • -
728x90
반응형

 

 


 

 

매번 MariaDB 를 사용하다가

이번 프로젝트때 Oracle 을 사용하기로 하고 예전에 설치 했었던 Sqldeveloper 을 실행 시킨 후

system (관리자) 권한으로 접속하려니 처음 설치할때 설정했던 비밀번호가 기억나지않아

터미널 창에서 사용자를 생성하고 권한을 부여해봤다.

 

sqlplus

 

명령 프롬프트(터미널) 실행 후 오라클 데이터베이스 관리 및 쿼리 도구를 터미널 인터페이스에서 사용할 수 있는 명령어인 sqlplus 를 입력한다.

 

conn/as sysdba

 

 

그 후 위와 같이 입력하여 관리자 계정으로 접속한다.

 

create user jihak identified by 1234;

 

(사용자 이름을 jihak, 비밀번호를 1234로 설정했다.)

사용자 생성 문을 입력하면 ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 라는 오류문구가 뜬다.

 

 

 

알아보니 오라클 버젼 12c 이상 부터는 C## 키워드가 붙어 

 

create user c##jihak identified by 1234;

 

 

위와 같이 입력해야 정상적으로 생성이 된다.

하지만 권한부여 및 사용 측면에서 매우매우 불편하다.

 

alter session set "_ORACLE_SCRIPT" = true;

 

 

위와 같이 입력하면 c## 를 붙히지 않고 사용할 수 있다.

 

 


사용자를 생성 후 

grant connect, resource, dba to jihak;

 

 

위와 같이 입력하여 접속권한(connect),  객체 생성 및 관리 권한(resource), 시스템 레벨의 설정 및 관리 작업을 수행할 수있는 전반에 대한 권한(dba) 을 부여한다.

 

 

 

commit; 명령어를 통해 커밋을 수행한다.

(DCL 명령어는 자동커밋이 되어있지 않으면 커밋을 수행해줘야 적용된다.

show autocommit; 을 입력하여 autocommit ON 이 설정되어 있다면 굳이 할 필요 없다.)

 

commit;

 

 

 

그 후 

 

select * from all_users;

 

 

 

위와 같이 입력해서 사용자 정보 테이블의 뷰를 출력해본다.

 

 

 

 

다시 권한을 취소하고 계정을 삭제하고 싶다면

아래와 같이 입력하면된다.

 

revoke connect, resource, dba from jihak;

 

=> 권한 취소

 

drop user jihak cascade;

 

=> cascade 를 입력하여 해당 사용자가 소유한 객체(테이블, 뷰, 프로시져 등)도 한꺼번에 삭제한다.

 

 

 

select * from all_users;

 

사용자 뷰 확인 결과 삭제된 것을 볼 수 있다.

 

 


 

728x90
반응형
Contents

📝 포스팅 주소를 복사했습니다 📝

이 글이 도움이 되었다면 공감 부탁드립니다👍