안녕하세요 질문이 하나 있습니다.
오라클에서 일반 유저들에게 기본적으로 제공하는 테이블 들이 몇개있습니다.
예를 들어 dba_tables 같은 것듯인데요.
일반 유저에게 connect 권한을 부여하면, 저 위의 기본 제공 테이블들이 조회가 됩니다.
이를 제한하는 방법이 있을까요?
요약하자면 a라는 계정을 생성하고, connect 권한을 부여한뒤,
어떤 방법을 이용해 select * from all_tables 조회가 안되게 하는 방법을 찾고 있습니다.
혹시 아시는 분이 계시다면 조언 부탁드립니다.
방법은 위에 있지만 조금 조심해야 할 부분이 있어서 댓글 추가합니다.
1. DBA_XXXX는 일반유저에게 일반적으로 안보이는 뷰입니다. DBA권한이나 SELECT ANY DICTIONRY 같은게 부여되어 있는게 아닌지 확인이 필요합니다.
2. ALL_XXXX는 해당 뷰를 조회하는 유저가 자신이 가진 권한으로 조회할수 있는 오브젝트들의 정보를 보여주는 뷰입니다. 굳이 조회 못하게 막을 필요가 없습니다. 이미 권한을 가지고 있는 오브젝트에 대한 정보니까요.
ex) ALL_TABLES = 해당 유저가 SELECT 등의 권한을 가진 모든 테이블 정보 조회
3.USER_XXXX는 자신이 소유자인 오브젝트 정보를 보여줍니다. 이건 당연히 조회해서 문제가 될리가 없는 뷰입니다.
요약하면 DBA는 일반 유저에게 원래 안보이는게 정상이고, ALL이나 USER는 당연히 조회할수 있어야 하는 부분입니다.