기술 정보
home
채널 소개
home

테이블 조회 실패 현상 (조회 권한 보유)

문서 유형
장애 해결
분야
App개발
키워드
Grant
적용 제품 버전
6FS07
7FS02
1 more property

현상

테이블 조회 권한이 있음에도 테이블 조회 실패하는 현상에 대해 안내합니다.

테이블 조회 불가 현상 확인

GRANT SELECT, INSERT, UPDATE, DELETE ON RES.RRMS001 TO MOB_APU; 부여 하였으나 조회 실패
MOB_APU 계정에서 SELECT * FROM RES.RRMS001; 조회불가 현상 입니다.
1.
RES.RRMS001 테이블의 INDEX 중 IDX_IF4_RRMS001가 FBI(FUNCTION-BASED) 로 구성되어 있습니다.
CREATE INDEX "IDX_IF4_RRMS001" ON "RRMS001" ( "COM"."FN_CSYS_DECODE"("RRNO",'RRNO') ) LOGGING TABLESPACE "TS_RES" NOPARALLEL PCTFREE 10 INITRANS 2 /
SQL
복사
2.
COM.FN_CSYS_DECODE 사용권한을 조회 -> MOB_APU계정에 해당 FUNCTION에 대한 EXECUTE 권한이 빠져있습니다.
SQL> select grantee, owner, table_name, privilege from dba_tab_privs where table_name = 'FN_CSYS_DECODE' ; GRANTEE OWNER TABLE_NAME PRIVILEGE ---------- --------- --------------- ------------------------- ILK COM FN_CSYS_DECODE EXECUTE ILK_KEP COM FN_CSYS_DECODE EXECUTE ELK_RIPS COM FN_CSYS_DECODE EXECUTE ELK_EFNNC COM FN_CSYS_DECODE EXECUTE ELK_WRCARD COM FN_CSYS_DECODE EXECUTE RESNOTE_SOL COM FN_CSYS_DECODE EXECUTE ADM COM FN_CSYS_DECODE EXECUTE RES COM FN_CSYS_DECODE EXECUTE MIG COM FN_CSYS_DECODE EXECUTE ILK_RSERCH COM FN_CSYS_DECODE EXECUTE ILK_CCRF COM FN_CSYS_DECODE EXECUTE
SQL
복사
3.
MOB_APU유저로 SELECT * FROM RES.RRMS001; 구문에 대한 콜스택 확인 결과 sql_hardparsing 부분에서 문제가 발생합니다.
권한 체크 중 MOB_APU유저에서 접근할 수 없는 OBJECT가 존재하여 PARSING에 실패한 것으로 확인됩니다. #19 0x00000000005ddaf2 in sql_hardparsing (alloc=0x7fc8080111d0, sql=0x7fc81e11a3d8 "select * from RES.RRMS001 where rownum <=5", pp_sql=0x7fc81e11a3d8 "select * from RES.RRMS001 where rownum <=5", psm_params=0x7fc81b4e92c0, csr=0x7fcd3d10b2c0, ecs_ctx=0x7fc81b4e8d20, dd_lock_acquired=0x7fc81b4e8fdb "\001", rc=0x7fc81b4e9008, pp=0x7fc81b4e9128) at /data/autodist/TLeft_261783/tibero6/src/tbsvr/body/tbsvr_sql_process.c:1728 #20 0x00000000005e1441 in tbsvr_sql_process (alloc=0x7fc8080111d0, sql=0x7fc81e11a3d8 "select * from RES.RRMS001 where rownum <=5", ppid=0, sql_state=0x7fc81b4e9120, prepared_ddl=0x7fc81b4e9127 "", csr=0x7fc81b4e9300, pp=0x7fc81b4e9128, psm_params=0x7fc81b4e92c0, only_csr_generate=0 '\000') at /data/autodist/TLeft_261783/tibero6/src/tbsvr/body/tbsvr_sql_process.c:338
SQL
복사

원인

parsing 중 접근할 수 없는 object가 존재하여 parsing 실패하였으며 이로 인해 select 구문이 실행되지 않습니다.

해결

조회권한 부여함으로써 parsing을 성공합니다.
MOB_APU가 COM.FN_CSYS_DECODE를 실행 할 수 있도록 권한 부여 SQL> GRANT EXECUTE ON COM.FN_CSYS_DECODE TO MOB_APU;
SQL
복사