1、前言
在Oracle下,我们无法直接给一个新用户赋予另一个用户的所有表的查询权限而不给写权限。
要么给此用户授予dba权限,grant dba to newuser; 这种权限较大,一般不建议给到。
要么给予一个角色,将原用户所有表的select权限给这个角色,然后再将这个角色给新用户。
要么将所有表的select权限授予用户。
如下:
2、方法1:授权步骤
SQL>conn sys / as sysdba SQL> create user testuser identified by "123"; SQL> conn ncc/1 SQL> create role select_ncc_tables; SQL> grant select any table to select_ncc_tables; SQL> grant select_ncc_tables to testuser ;
3、另种方式(查表)
SQL>conn sys / as sysdba SQL> create user testuser identified by "123"; SQL>conn ncc/1 SQL>set pagesize 5000; SQL>spool user_tables.txt SQL>select TABLE_NAME from user_tables; SQL>spool off;
通过导出的表内容并结合excel进行语句设置,替换。
最后:
SQL>grant select on 表名 to testuser