2013-10-31 4 views
1

어떤 일이 뭐가 잘못 됐는지 볼 수있는 사용자를 통해 테이블에 액세스 할 수 없습니다 여전히 허용하지만, :오라클 SELECT

select * from def.something; 
ORA-00942: table or view does not exist 

사실 외래 키가 있습니다 .GHI에 액세스 권한이 없습니다. def.something에 문제가 있습니까?


편집 (예상 즉,로) 난 그냥 다른 서버에 다시를 시도하고 그것을 잘 작동합니다. 여기에 무슨 일이 일어나고 있는지 잘 모르겠지만 내 부분에 어떤 오류가있을 수 있다고 생각합니다 ... 그와 같이 질문을 끝내기로했습니다.

+0

'def.something에 대해 ROUser에게 선택 권한 부여 '를 수행하면 어떻게 될까요? – mucio

답변

0

아마도 SELECT 문은 PL/SQL 블록에서 실행 중입니까? PL/SQL에서 역할을 통해 부여 된 권한은으로 인식되지 않습니다. 해당 테이블에 직접 SELECT 권한을 추가하여 작동하는지 확인하십시오.

+0

명백한'grant select '를 추가하면 문제가 해결되지만, 위의 GHI 예제는 PL/SQL 블록 내에서 실행되지 않습니다. 바로 SQL입니다. – Xophmeister

+0

@Xophmeister 이상한, 나는 모든 개체와 사용자를 만들었고 그것은 나를 위해 작동합니다. 어떤 데이터베이스 버전을 사용하고 있습니까? 쿼리를 어디에 실행합니까 (SQLDeveloper?)? 'def' 스키마에 또 다른 테이블 (가장 간단한, 하나의 숫자 컬럼)을 만들 수 있습니까?'ROUSer' 역할에 select를 부여하고'ghi' 사용자로 쿼리 할 수 ​​있는지 확인하십시오. –

+0

Oracle SQL Developer를 통해 10gR2. 단 하나의 숫자 열과 테이블을 사용하여 시도하고 예상대로 작동합니다. 또한, 나는 다른 서버에서 문제를 복제 할 수 없습니다 ... 같은, 나는 바보 같은 짓을 한 것 같아요,하지만 아직 그것을 발견하지 못했습니다! 닫기 투표 (그리고 당신의 도움에 감사드립니다 :) – Xophmeister