将所有用户表的读取权限授予oracle中的新用户



如何在oracle中为新用户提供所有用户表的读取权限?

一个接一个,没有神奇的命令可以做到这一点"立即";。

每个用户都应该运行

grant select on my_first_table to a_new_user;

声明。


True,您可以编写代码为自己编写代码,例如

SQL> select 'grant select on ' || tname || ' to a_new_user;' as command
2  from tab
3  order by tname;
COMMAND
-------------------------------------------------------------
grant select on BONUS to a_new_user;
grant select on CHALLEN_HEADER to a_new_user;
grant select on CONFIG to a_new_user;
grant select on CUSTOMER to a_new_user;  
<snip>

现在,将这组GRANT语句复制/粘贴到您的客户端(SQL*Plus、SQLDeveloper等(中并运行它们。

或者,您可以将该语句的结果假脱机到一个文件中,然后运行该文件。

或者,甚至创建一个PL/SQL(匿名?存储?(过程,该过程将一次性接受一个参数(一个新用户名(并授予权限。

通常,每个"类"用户都应该有一个ROLE,然后授予该角色的权限。然后,当新用户加入时,只需将角色授予用户即可:

CREATE ROLE BUSINESS_USER;
GRANT SELECT ON APP_SCHEMA.EMPLOYEE_TABLE TO BUSINESS_USER;
GRANT SELECT ON APP_SCHEMA.DEPARTMENT_TABLE TO BUSINESS_USER;

然后,当你获得新用户时:

GRANT BUSINESS_USER TO BOB;
GRANT BUSINESS_USER TO CAROL;
GRANT BUSINESS_USER TO TED;
GRANT BUSINESS_USER TO ALICE;

相关内容

最新更新