2012-05-23 92 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'将显示角色在表上有什么特权。由于可以将角色授予角色,因此角色可以默认或非默认授予用户,角色可以使用密码保护等。要确定哪些用户具有通过角色访问表的权限可能有点困难除非你做出一些简化的假设,否则什么情况。 –