Oracle

[210930] 오라클 데이터베이스 계정 연동 연습 문제

감자탈출기 2021. 10. 1. 15:39

/*

Q. Develop1 계정을 하나 새로 생성한다.

- 이 계정의 패스워드는 임의로 생성한다.

- 이 계정은 Oracle DBMS에 접속할 수 있어야 한다.

- 이 계정은 테이블 생성 및 수정, 삭제 권한과 데이터 조회, 추가, 수정, 삭제 권한이 필요하다.

- 생성한 계정으로 Oracle DBMS 에 접속하여 테이블을 생성하도록 한다.

*/

 

 

1. 시스템 계정으로 오라클에 접속한다. 

나는 VS CODE에 접속해 미리 연동해 두었던 SYSTEM.XEPDB1 계정으로 오라클에 접속했다.

만일 초기 상태라면 cmd 창 실행 - sqlplus - 사용자명 : system 또는 sys as sysdba  비밀번호 : admin 입력 후 2번 과정을 따른다.

(클라우드에 오라클을 설치하여 로컬이 아닌 클라우드에 계정을 생성하여야 한다면 VS CODE에서 ADMIN.testdb_medium계정으로 접속하여야 한다. [210909] 동영상 참고)

 

2. Develop1 계정을 생성한다.

--계정 생성         유저를 소문자로 만들었어도 실제 등록은 대문자로 됨
CREATE USER Develop1 IDENTIFIED BY Database4321;
--계정 암호 변경     시스템 계정으로 접속해서 수정할 것 일반 계정 안 됨
ALTER USER Develop1 IDENTIFIED BY Database1234;

--권한 부여
GRANT CONNECTRESOURCE
    , INSERT ANY TABLEUPDATE ANY TABLE
    , DELETE ANY TABLECREATE VIEW
    TO Develop1;

--테이블스페이스(USERS) 사용 권한 부여      50메가바이트에 대한 공간을 테이블이 사용할 수 있게 부여 
ALTER USER Develop1 quota 50M ON USERS;

--생성된 계정 확인
SELECT * FROM ALL_USERS;

--계정에 부여한 권한 확인         소문자로 만들어진 계정명 작은 따옴표로 둘러 싸서 쓸 때 대문자로 작성
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'Develop1 ';

--계정에 부여한 ROLE(역할) 확인
--ROLE(역할) : 여러 권한들의 집합.
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'Develop1 ';
-- cmd 에서 오류가 나거나 필요에 따라 사용할 구문 

--> cmd 오류 : 공통 사용자 또는 롤 이름이 부적합합니다.
--오라클 12c로 넘어오면서 계정이름 앞에 c##을 붙여줘야 공통 사용자를 생성가능, 매번 입력하기 번거로우므로
ALTER SESSION SET "_ORACLE_SCRIPT"=true;  --(설정 변경) 

-- 계정 잠금 해제
ALTER USER DEVELOP1 ACCOUNT UNLOCK;

-- 계정 삭제
DROP USER DEVELOP1 CASCADE;

--생성된 계정 확인
SELECT * FROM ALL_USERS;

--계정에 부여한 권한 확인         소문자로 만들어진 계정명 작은 따옴표로 둘러 싸서 쓸 때 대문자로 작성
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DEVELOP1';

--계정에 부여한 ROLE(역할) 확인
--ROLE(역할) : 여러 권한들의 집합.
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'DEVELOP1';

-- cmd에서 생성된 계정으로 접속
conn develop1/Database1234

 

3. VS CODE를 이용 오라클 DBMS에 연동한다.

 

- 로컬에 설치된 오라클 DBMS 에 연동하길 원할 때 

User name, Password는 계정 생성시 설정한 값이다. 비밀번호는 대소문자를 구별한다. 


- 오라클 클라우드 DBMS 에 연동하길 원할 때 


※ 오라클 클라우드 DBMS 연결 시 시스템 계정이 아닌 ADMIN.testdb_medium계정으로 접속하여야 하는 이유

 

-> 다음과 같이 오라클 클라우드에서 ADMIN계정 생성하여 월렛 미리 사용가능 상태로 만들었기 때문에 이걸로 접속해서 계정을 생성해야 정상적으로 오라클 클라우드 월렛에 연동될 수 있다. [210909] 동영상 참고

(오라클이 오라클 클라우드에만 설치되었다고 생각해보자. 시스템 계정으로 접속해서 계정을 만들어도 오라클 클라우드 DBMS에는 당연히 연동이 안 될 것이기 때문이다. 오라클 클라우드 관리자(ADMIN) 계정으로 접속해야 가능한 것이다.

 

 

참고

https://talkingpotatosescape.tistory.com/36

 

 

프로퍼티스 

user = user1
password = Database4321
cloud-url = jdbc:oracle:thin:@testdb_medium?TNS_ADMIN=c:\\Users\\lmry\\eclipse\\Wallet_testDB
local-url = jdbc:oracle:thin:@localhost:1521/XEPDB1