개발

ORACLE OPEN JPA에서 설정과 다른 schema의 db를 조회 본문

Java

ORACLE OPEN JPA에서 설정과 다른 schema의 db를 조회

Dev.hs 2022. 1. 9. 13:26

JPA에서 데이터베이스의 다른 사용자의 db를 조회

이슈

  • 다음처럼 user를 teaming_core로 설정

      vendorAdapter.database=ORACLE
      database.driverClassName=oracle.jdbc.driver.OracleDriver
      database.url=jdbc:oracle:thin:@localhost:1521:orcl
      database.username=test1
      database.password=test1
  • 로그 확인시 테이블 유저를 test2로 접근하고있음.

      executing prepstmnt 1259003280 SELECT t0.USERFLAG_ID, t0.USERFLAG_NAME FROM TEST2.TABLE_NAME
  • DB툴에서 test1로 접근후 다음처럼 test2 스키마에 접근

      SELECT * FROM test2.table_name tm ;
      INSERT INTO test2.table_name (tablecolumn) VALUES ('a');
    • 접근성공
  • 새로만든 사용자로 test2 스키마접근

    • 권한은 resource,connect 두개만 줌

      SQL Error [942] [42000]: ORA-00942: 테이블 또는 뷰가 존재하지 않습니다
  • test1 커넥션으로 유저 생성등 일반 사용자가 할 수 없는 명령어가 가능함.

  • 권한문제라고 생각..

해결

  • 권한조회

      SELECT * 
        FROM DBA_ROLE_PRIVS 
       WHERE GRANTEE = 'test1';

    —> reosource, connect 외에 필요하지 않은 DBA권한이 있음.

  • 권한 제거

      revoke dba from test1;

  • DBA_ROLE_PRIVS

https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4064.htm#REFRN23230

  • DBA권한

    • CONNECT 롤

      • 사용자가 데이터베이스에 접속하여 세션을 생성하거나 테이블 또는 뷰와 같은 객체를 생성할 수 있는 권한을 그룹화한 롤.
    • RESOURCE 롤

      • 사용자에게 자신의 테이블, 시퀀스, 프로시저, 트리거와 같은 객체를 생성할 수 있는 권한을 부여한 롤.
    • DBA 롤

    • 시스템 자원의 무제한적인 사용이나 시스템 관리에 필요한 모든 권한 그리고 DBA권한을 다른 사용자에게 부여할 수 있는 강력한 권한을 보유한 롤이다. 또한 모든 사용자의 CONNECT, RESOURCE, DBA권한을 포함한 어떠한 권한을 부여하거나 철회할 수 있다.

참고

https://sksstar.tistory.com/90

'Java' 카테고리의 다른 글

Maven dependency가 겹칠경우  (0) 2022.01.09
Stream  (0) 2021.03.14
Class 클래스  (0) 2021.03.06
제네릭 기초  (0) 2021.03.06
자주쓰는 날짜 관련 api 정리 (yyyyMMddHHmmss)  (0) 2021.02.23
Comments