본문 바로가기
DataBase/Oracle

계정 생성) 계정 생성 및 권한 부여

by 박채니 2022. 4. 12.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


관리자 계정 생성

--=====================================
-- 관리자 계정
--=====================================
-- 실습용 kh계정 생성

create user kh -- 계정명
identified by  -- 비밀번호(대소문자 구분)
default tablespace users; -- tablespace 실제 data가 저장될 영역

이렇게 계정 생성을 하려고 했더니 아래와 같은 오류메세지가 나오면서 생성 불가합니다.

"ORA-65096: invalid common user or role name"

 

그 이유는, 12c부터는 일반 계정은 모두 c##, C## 접두어를 사용해야 하기 때문인데요.

다소 번거롭기 때문에 아래 코드를 통해서 해결해줍니다.

-- 12c부터 일반계정은 c##, C## 접두어를 사용해야함.
alter session set "_oracle_script" = true;

create user kh -- 계정명
identified by  -- 비밀번호(대소문자 구분)
default tablespace users; -- tablespace 실제 data가 저장될 영역

위와 같이 메세지가 나오면 계정 생성 성공!!

 

계정에 접속하기 위해서 녹십자 버튼을 클릭하여 사용자 이름 / 비밀번호를 입력해주고 테스트해보았더니,

CREATE SESSION 권한을 갖고 있지 않기 때문에 로그인이 거절 된다는 메세지가 뜨면서 접속이 불가합니다.

DB는 모든 것이 권한을 통해서 가능 여부가 나뉘게 됩니다.

 

 

권한 설정 방법

-- 상태: 실패 -테스트 실패: ORA-01045: 사용자 KH는 CREATE SESSION 권한을 가지고있지 않음; 로그온이 거절되었습니다
-- create session 권한 부여
grant create session to kh;

CREATE SESSION 권한을 부여하기 위한 코드입니다.

 

이 외, 한 번에 모든 권한을 부여해줄 수도 있는데요,

-- connect 롤, resource 롤 부여 : role(권한 묶음)
-- connect 롤 안에 create session 권한 포함.
-- resource 롤 안에 create table 등 객체 생성 권한 포함
grant connect, resource to kh;

connect 롤 (create session 권한 포함), resource 롤 (create table 등 객체 생성 권한 포함) 을 한 번에 부여해줄 수 있습니다.

저는 이 코드로 권한을 부여해주겠습니다.

위와 같이 메세지가 나오면 권한 부여 성공!!

아까와 같이 테스트를 해보면 성공이 뜨게 되고, 정보를 저장해줍니다.

 

저는 users tablespace에 대한 사용 권한 부여도 같이 해주겠습니다.

-- users tablespace에 대한 사용권한 부여
alter user kh quota unlimited on users;

users tablespace에 대한 권한 부여도 성공적으로 된 것을 확인할 수 있습니다.