1
我對SQL Oracle Developer中的權限感到困惑。創建的用戶可以訪問所有架構/用戶的表。我想限制數據庫中的特定用戶訪問(ALTER,DROP,UPDATE等)到他自己的表中。任何人都可以指定我如何執行此任務。限制用戶只能在Oracle SQL Developer中訪問他自己的表
我的意思是從系統權限中選擇哪些權限讓用戶只能訪問他自己的表。謝謝
我對SQL Oracle Developer中的權限感到困惑。創建的用戶可以訪問所有架構/用戶的表。我想限制數據庫中的特定用戶訪問(ALTER,DROP,UPDATE等)到他自己的表中。任何人都可以指定我如何執行此任務。限制用戶只能在Oracle SQL Developer中訪問他自己的表
我的意思是從系統權限中選擇哪些權限讓用戶只能訪問他自己的表。謝謝
的用戶將只對表的權限的模式之外,如果
如果用戶已被授予系統級權限(即SELECT ANY TABLE
),則可以撤消系統級權限。如果用戶已被授予每個表的顯式權限,則需要撤銷每個表上的權限。
我的猜測是用戶已被授予角色(可能是DBA
角色),該角色包含一個或多個ANY
系統權限。如果是這樣的話,你需要撤銷用戶的角色或撤銷該角色的權限。
授予用戶什麼角色?
SELECT granted_role
FROM dba_role_privs
WHERE grantee = <<the user name>>
什麼系統權限授予用戶?
SELECT privilege
FROM dba_sys_privs
WHERE grantee = <<the user name>>
什麼系統權限授予給用戶的角色?
SELECT *
FROM dba_sys_privs
WHERE grantee IN (SELECT granted_role
FROM dba_role_privs
WHERE grantee = <<the user name>>)
這通常是授予比所需更多特權的情況。你的任務是撤銷一些現有的系統級權限(本來不應該在那裏)。「更改,刪除,更新任何表」到任何非DBA用戶絕對是一個錯誤。 – 2012-07-14 01:50:20