Oracle Create View 수행시 role 에 관하여 0 2 4,046

by 김준수 [Oracle Admin] oracle view role [2022.09.08 10:59:17]


안녕하세요, 궁금한게 있어서 질문드려요!

 

role을 통한 dba 권한이 있는 admin 계정에서 다른 스키마(user)의 테이블(test_table)을 참조해 create view를 하는경우

ex)

create view test_view as

select * from user.test_table;

 

하단의 select 구문은 수행되지만

create view는 권한이 불충분하다고 실패합니다.

 

하지만 admin계정은 role을 통해 dba권한을 가지고 있구요

dba권한은 create any view를 포함합니다.

 

일단 해결방법은

1)

create view user.test_view as

select * from user.test_table;

유저의 스키마에 뷰를 생성하는건 가능합니다.

2)

grant select on user.test_table to admin;

으로 테이블 직접권한을 주면 

create view test_view as

select * from user.test_table;

가 수행됩니다.

 

정말 궁금한건

grant select on user.test_table to dba;

와 같이 dba role 에게 테이블직접 권한을 주고 dba_tab_privs 에 등록되는걸 확인했는데도

create view는 안되더라구요

 

저장프로시저도 마찬가지로 비슷한 현상이 있는걸로 알고있는데요

보안을 위해서 롤을통한 접근권한은 제한하는걸로 알고있는데

view도 마찬가지로 이해해야하나요?

 

dba입문 2주차입니다. 많이 도와주세요!

고수님들의 답변 기다리겠습니다!

by pajama [2022.09.08 22:56:53]

아래 문서 내용을 보면 role에 의해서 select나 create view 권한이 적용된경우 다른사용자의 테이블에 대한 view 생성에 제한이 있는 것 같습니다.

https://docs.oracle.com/cd/B19306_01/network.102/b14266/authoriz.htm#i1007401


by 김준수 [2022.09.09 16:21:58]

@pajama

완벽하게 설명되어있네요

정말 감사합니다!!! 

최고!!!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입