[210930] 오라클 데이터베이스 계정 연동 연습 문제
/*
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 CONNECT, RESOURCE , INSERT ANY TABLE, UPDATE ANY TABLE , DELETE ANY TABLE, CREATE 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