작업하는 유저는 user0이구요.
user1의 Table을 user2에 조회가능토록 넘기고 싶습니다.
grant select on user1.TABLE to user2
이렇게 하면 권한 불충분으로 오류가 발생합니다.
user1으로 부터 select 권한을 받아서
select * from user1.TABLE하면 잘 조회가 되는데 말이죠.
어떤 권한을 어떻게 부여해야 이 명령어가 먹힐까요?
user가 전지전능한 DBA 권한이 있어야 합니다.
참고로 select * from dba_role_privs where grantee = 'USER' 하시면 해당 user가 갖고 있는 role을 알 수 있습니다.
user1 이 user0 에게 다음과 같이 권한을 주어야 합니다.
GRANT SELECT ON Table TO user0 WITH GRANT OPTION;
그러면, user0 가 user2 에게 user1의 테이블을 조회 할수 있는 권한을 줄 수 있습니다.
GRANT SELECT ON user1.Table TO user2;
그리고, 하나 더 아셔야 할 것은, 나중에 user1 이 user0 에게 준 테이블 조회 권한을 취소하면, user2 에게 주어 졌던 권한도 같이 없서 집니다.