오라클 패키지가 제대로 돌아가지 않습니다. 0 2 7,682

by 연이 [Oracle 기초] 오라클 패키지 권한 수행 oracle package insert update select merge [2017.05.25 09:40:41]


안녕하세요. SQL 기초 밖에 모르는 초보입니다..

오라클에서 유저 A와 B는 같은 내용의 패키지 A.PKG와 B.PKG를 소유하고 있습니다.
해당 패키지의 내용은 B유저의 테이블 B.TBL을 select, insert, update하는 내용(merge)이기 때문에
A유저에게 B.TBL 테이블의 select, insert, update 권한을 부여하였습니다.

이와 같은 상황에서 B유저가 B.PKG를 수행하면 아주 정상적으로 동작하지만,
A유저가 A.PKG를 수행하면 exception을 타지 않고 정상루트로 잘 동작하는 것으로 보이지만
커밋을 해도 실제로 데이터가 변경되지 않고 있습니다.
A유저가 해당 merge 구문을 추출하여 쿼리로 돌리면 정상적으로 데이터가 변경되기 때문에
권한이 없는 것은 아니고, 패키지 수행시에도 특별히 에러가 떨어지는 것은 없고
같은 내용의 B.PKG를 B유저가 수행할 때에는 잘 돌아가기 때문에 구문 에러도 아닙니다.

혹시나 A.PKG가 B.TBL을 조작하는 권한이 없어서 그런가 싶어서
grant select on B.TBL to A.PKG; 라는 식으로 권한도 줘보려했지만 에러가 나더라구요..;

상황을 봐서는 안될 이유가 없는 것 같은데 안되고 있어서 며칠째 고민해보는데 잘 모르겠습니다..
어떤 부분을 더 생각해보고 의심해봐야할 지 조언 부탁드립니다!

by 부쉬맨 [2017.05.25 10:28:10]

execute 권한도 주셔야됨


by 연이 [2017.05.25 10:34:41]

본인이 만들고 소유한 패키지에도 execute 권한을 부여해야 하는건가요? 아, 그리고 권한이 없으면 수행시킬 때 권한이 없다는 에러가 나야할 것 같은데 안나더라구요..

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