개발
ORACLE OPEN JPA에서 설정과 다른 schema의 db를 조회 본문
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권한을 포함한 어떠한 권한을 부여하거나 철회할 수 있다.
참고
'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