2012-07-31 88 views
0

我已經創建了一個新的數據庫用戶。我發現該帳戶可以選擇其他模式表的數據。那麼,如何限制新帳戶只能操縱其擁有的表?如何防止用戶選擇其他模式的表格?

+1

是在'GRANT's分配給你的新用戶呢?它正在訪問的* extra *表是否使用'PUBLIC SYNONYM'設置? – YePhIcK 2012-07-31 20:34:28

+2

您必須主動給予這些新用戶選擇這些表的權限。默認情況下,用戶不能從其他用戶的表中進行選擇。你有機會給新用戶「SELECT ANY TABLE」特權嗎? – 2012-07-31 20:52:05

回答

1

你不能。在某些情況下,您可以使用REVOKE,但要記住關於REVOKE的最重要的事情是,它只能撤消顯式爲GRANT ed的權限。每個數據庫都具有GLOBAL權限,並不與任何特定模式綁定並授予PUBLIC。只要它們(權限)有效,這些權限就會被所有ROLES繼承。

您可以撤銷某些PRIVILEGES,如SELECT, DELETE, INSERT等,但您必須在每個模式的對象級別上執行此操作。這意味着,如果新表被添加到這些模式中的任何一個,則用戶將默認有權訪問它,除非該用戶的新表上的PRIVILEGESREVOKED

按以下Oracle文檔是先決條件,以撤回─

先決條件

  1. 要撤銷系統權限,您必須已被授予與ADMIN OPTION特權。

  2. 要撤銷一個角色,你必須已被授予與ADMIN OPTION的作用。如果您擁有GRANT ANY ROLE系統特權,則可以撤銷任何角色。

  3. 要撤銷對象特權,您必須先前已授予用戶和角色的對象特權,或者您必須擁有GRANT ANY OBJECT PRIVILEGE系統特權。在後一種情況下,您可以撤消由對象所有者或代表所有者授予的任何對象特權 - 也就是說,具有授予任何對象特權的用戶。但是,您無法撤消通過WITH GRANT OPTION授予的方式授予的對象特權。

相關問題