2010-11-19 4 views
2

나는 오라클 사용자 A, B, C가 3 명이고 C를 A에서 A로 가져 오기 위해 B를 사용하고자한다. B에 연결되면 "create table A.T1 select * from T1 * 기음". 하지만 B가 생성하거나 소유하는 프로 시저에 SQL 문을 넣을 때 "ORA-01031 : 충분하지 않은 권한"이 계속 나타납니다. sysdba로서, 나는 B에 모든 권리 (dba)를 부여했다. 그래서 나는 여기서 무엇을 놓치고 있는가? 고맙습니다.Oracle 프로 시저가 작성자의 권한을 상속합니까?

답변

2

사용자에게 B님께 다음을 허락하셨습니까? 정의 자의 절차 (기본값)에 저장 권리, 사용할 수있는 유일한 권한에

sql> grant create any table to b; 
5

는 사용자에게 직접 부여되는 것과,하지 (DBA 같은) 역할을 통해 부여 된 것들이다. 따라서 Pablo는 B가 CREATE ANY TABLE 권한을 직접 권한으로 가져야한다는 점에있어서 정확합니다.

+1

기본값은 호출자가 아닌 "소유자 권한"입니다. – redcayuga

+1

@redcayuga - +1과 캐치에 감사드립니다! 당신은 절대적으로 옳습니다. 귀하의 수정 내용을 반영하여 답변을 업데이트했습니다. –

+0

"AUTHID DEFINER"...;) 이것이 기본값입니다. 대안은 내가 시도하고 싶은 "AUTHID CURRENT_USER"입니다 ...! –

관련 문제