2011-08-04 107 views
0

我正試圖阻止人們在架構中創建類型。從Oracle架構撤銷創建類型

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 ed。這裏有可能是colin通過已分配給用戶的角色具有特權。

您並不是真的想從該角色中刪除該特權,因爲它會影響具有該角色的任何用戶;相反,如果您不希望他們這樣做(最簡單的方法是通過企業管理器),您需要爲這些用戶提供不具有create any type的不同角色。

+0

現貨,謝謝! – colinjwebb

+0

只需要添加,就有獨立的權限CREATE TYPE和CREATE ANY TYPE。具有CREATE TYPE的用戶可以在自己的模式中創建類型,而CREATE ANY TYPE更強大,並且意味着您可以在別人的模式中創建類型。只有DBA可能需要後者。 –