2012-05-23 95 views
0

在Oracle中,'MyTable'表由'User1'擁有,我如何將表訪問權限授予另一個用戶,比如'User2'?Oracle分配表權限

在SQL服務器中,我們有一些應用程序訪問權限,Oracle有東西嗎?

回答

2

可以授予SELECT權限(或INSERTUPDATEDELETE,和其他一些像REFERENCES)用戶

GRANT SELECT 
    ON user1.MyTable 
    TO user2 

這將是比較常見的,但是,創建角色,授予權限到角色,然後授予任何用戶需要,可以更容易在未來授予一個角色給更多的用戶,並ENS的作用,即

CREATE ROLE user1_select; 

GRANT SELECT 
    ON user1.MyTable 
    TO user1_select; 

GRANT user1_select 
    TO user2; 

使所有具有特定工作職能的用戶都具有相同的角色集合,而不是試圖確保您已授予每個人訪問完全相同的一組對象的權限。

+0

你能給我一個查詢來顯示錶的用戶權限嗎? – user595234

+0

@ user595234 - 'dba_tab_privs'(或'all_tab_privs'或'user_tab_privs',取決於您的權限以及您感興趣的表)將顯示用戶對錶的特權。 'role_tab_privs'將顯示角色在表上有什麼特權。由於可以將角色授予角色,因此角色可以默認或非默認授予用戶,角色可以使用密碼保護等。要確定哪些用戶具有通過角色訪問表的權限可能有點困難除非你做出一些簡化的假設,否則什麼情況。 –