··조회 12,976
질문)오라클 유저권한에 대해서 질문있습니다.
안녕하세요.
제가 테이블스페이스를 하나 만들고 오라클 유저(testa/testa)를 생성하여 권한을 connect,resource를 주었습니다. 실제 sql문은 아래와 같습니다.
create tablespace TEST_DATA
datafile '/home/oracle/oradata/DATA/test_data.dbs' size 50M
default storage (initial 10M next 5M pctincrease 0)
create tablespace TEST_INDEX
datafile '/home/oracle/oradata/TMS/test_index.dbs' size 30M
default storage (initial 5M next 3M pctincrease 0)
create user testa identified by testa
default tablespace TEST_DATA
grant connect,resource to testa
위와 같이 하고 다시 testa로 sqlplus로 접속하여 각각의 tabel를 생성하고, 프로시져를 등록하였습니다.
그런데 문제는 오라클 유저(testb/testb)를 TEST_DATA,TEST_INDEX 테이블스페이스에 생성하여 권한을 주고 ProC에서 testa 유저가 생성한 테이블을 조회하는데 컴파일 에러가 남니다.
testb 유저를 생성한 sql문은 다음과 같습니다.
create user testb identified by testb
default tablespace TEST_DATA
grant connect,resource to testb
그리고 ProC에서 컴파일한 옵션과 소스의 문장은 다음과 같습니다.
$(PROC) iname=$*.pc ireclen=128 userid=testb/testb sqlcheck=semantics
EXEC SQL DECLARE cursor_airinfo CURSOR FOR
SELECT loc_code,
loc_nams,
loc_offi1
FROM testa.loc
WHERE loc_curr = '0'
ORDER BY loc_code;
위와 같이 하고 ProC로 컴파일하면 testa.loc 식별자가 정의가 안되어 있다고 나옵니다.
제가 생각할때는 testb 유저에 대한 권한이 잘못되어 있는거 같은데...
지금 일주일째 헤메고 있습니다.
어떻게 하면 testb 유저가 testa 유저가 생성한 tabel과 procedure를 다 조회가능한지요.
부디 알고 계시는분은 답변부탁드립니다.
그럼 수고하십시오.
제가 테이블스페이스를 하나 만들고 오라클 유저(testa/testa)를 생성하여 권한을 connect,resource를 주었습니다. 실제 sql문은 아래와 같습니다.
create tablespace TEST_DATA
datafile '/home/oracle/oradata/DATA/test_data.dbs' size 50M
default storage (initial 10M next 5M pctincrease 0)
create tablespace TEST_INDEX
datafile '/home/oracle/oradata/TMS/test_index.dbs' size 30M
default storage (initial 5M next 3M pctincrease 0)
create user testa identified by testa
default tablespace TEST_DATA
grant connect,resource to testa
위와 같이 하고 다시 testa로 sqlplus로 접속하여 각각의 tabel를 생성하고, 프로시져를 등록하였습니다.
그런데 문제는 오라클 유저(testb/testb)를 TEST_DATA,TEST_INDEX 테이블스페이스에 생성하여 권한을 주고 ProC에서 testa 유저가 생성한 테이블을 조회하는데 컴파일 에러가 남니다.
testb 유저를 생성한 sql문은 다음과 같습니다.
create user testb identified by testb
default tablespace TEST_DATA
grant connect,resource to testb
그리고 ProC에서 컴파일한 옵션과 소스의 문장은 다음과 같습니다.
$(PROC) iname=$*.pc ireclen=128 userid=testb/testb sqlcheck=semantics
EXEC SQL DECLARE cursor_airinfo CURSOR FOR
SELECT loc_code,
loc_nams,
loc_offi1
FROM testa.loc
WHERE loc_curr = '0'
ORDER BY loc_code;
위와 같이 하고 ProC로 컴파일하면 testa.loc 식별자가 정의가 안되어 있다고 나옵니다.
제가 생각할때는 testb 유저에 대한 권한이 잘못되어 있는거 같은데...
지금 일주일째 헤메고 있습니다.
어떻게 하면 testb 유저가 testa 유저가 생성한 tabel과 procedure를 다 조회가능한지요.
부디 알고 계시는분은 답변부탁드립니다.
그럼 수고하십시오.
댓글 3
이건 제가 해결하기 힘들 것 같네요.
혹시 아시는 분 있으면 답변해 주시구요...
저도 알아보겠습니다...
testb에 select 권한을 안주어서 에러가 났습니다.
system 으로 로그인해서
grant select on testa.loc to testb
하니깐 됩니다.
알고 보면 간단한건데....