2011-08-04 3 views
0

스키마에서 유형을 작성하는 사람들을 막으려합니다.Oracle 스키마에서 Create Type을 취소하십시오.

colin @ colindev >create or replace type colin_obj as object(
    2 id varchar2(20) 
    3 ); 
    4/

Type created. 

어떻게 중지합니까?

나는

SYS @ colindev >revoke create any type from colin; 
revoke create any type from colin 
* 
ERROR at line 1: 
ORA-01952: system privileges not granted to 'colin' 

을 시도하고 시스템 대신 SYS에서 같은 일을했다.

아이디어가 있으십니까?

답변

4

revoke은 이미 권한이 grant 인 경우에만 작동합니다. 여기서 가능한 것은 사용자에게 할당 된 역할을 통해 colin에 권한이 있다는 것입니다.

해당 역할을 가진 사용자에게 영향을 미치기 때문에 역할에서 권한을 정말로 제거하고 싶지는 않습니다. 대신 이러한 사용자에게 create any type이없는 다른 역할을 부여해야합니다 (가장 쉬운 방법은 엔터프라이즈 관리자를 사용하는 것입니다).

+0

감사합니다. – colinjwebb

+0

CREATE TYPE과 CREATE ANY TYPE이라는 ​​별도의 권한이 추가되었습니다. CREATE TYPE을 사용하는 사용자는 자신의 스키마에서 유형을 작성할 수 있지만 CREATE ANY TYPE은보다 강력하고 다른 사람의 스키마에서 유형을 작성할 수 있음을 의미합니다. DBA만이 후자를 필요로 할 수 있습니다. –

관련 문제