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

Oracle 为用户添加特定表名的选择和写入权限,oracle,Oracle,我已经在SQLDeveloper(Oracle11g)中使用以下命令创建了一个新用户。我只有两个名为FEED_DATA_A和FEED_DATA_B的表,我希望该用户能够选择、更新和插入它们。有人能帮我理解SQL以创建适当的权限来实现这一点吗?我当前以系统用户身份登录 CREATE USER "USER_A" IDENTIFIED BY "test123"; 如果要直接向用户授予特权 GRANT select, update, insert ON table_owner.feed_dat

我已经在SQLDeveloper(Oracle11g)中使用以下命令创建了一个新用户。我只有两个名为FEED_DATA_A和FEED_DATA_B的表,我希望该用户能够选择、更新和插入它们。有人能帮我理解SQL以创建适当的权限来实现这一点吗?我当前以系统用户身份登录

CREATE USER "USER_A" IDENTIFIED BY "test123";

如果要直接向用户授予特权

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;
不过,更常见的情况是,您将创建一个角色,将该角色授予用户,并将权限授予该角色。这使得将来创建一个新用户时,如果您希望拥有与用户_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