为特定表名称添加用户的选择和写权限

时间:2013-10-31 21:00:33

标签: oracle

我在sql developer(Oracle 11g)中使用下面创建了一个新用户。我只有两个名为FEED_DATA_A和FEED_DATA_B的表,我希望这个用户能够选择,更新和插入。有人可以帮我理解SQL来创建适当的权限来实现吗?我目前以系统用户身份登录。

CREATE USER "USER_A" IDENTIFIED BY "test123";

1 个答案:

答案 0 :(得分:2)

如果您想直接向用户授予权限

GRANT select, update, insert 
   ON table_owner.feed_data_a
   TO user_a;
GRANT select, update, insert 
   ON table_owner.feed_data_b
   TO user_a;

但更常见的是,您可以创建角色,将角色授予用户,并为角色授予权限。这使得将来创建新用户时,您希望拥有与USER_A相同的权限,以便仅授予一些角色,而不是计算可能需要授予的所有权限。它还使得创建新表并授予新权限以确保具有相同权限的用户继续拥有相同权限时更容易。

CREATE ROLE feed_data_role;

GRANT select, update, insert 
   ON table_owner.feed_data_a
   TO feed_data_role;
GRANT select, update, insert 
   ON table_owner.feed_data_b
   TO feed_data_role;

GRANT feed_data_role
   TO user_a