linux环境下oracle数据库创建一个只有查询权限的用户

一、Linux下登录oracle

1、切换至oracle用户   su - oracle

2、登录数据库

sqlplus /nolog

conn / as sysdba(sysdba为管理员)

查看当前登录数据库用户 show user

二、创建新用户

create user user1 identified by global
default tablespace ODPS
temporary tablespace temp profile default;

说明:我创建的新用户为user1   表空间是之前创建好的ODPS

赋于user1连接权限: grant connect to user1;

三、授权

1、以需要被查询的用户登录oracle(假如为user2)   user1为要查询user2用户下表的用户

2、执行查询语句: select 'grant select on user2.'|| tname ||' to  user1;' from tab;

以下为模拟结果:

  1. grant select on user2.DEPT to  user1; 
  2. grant select on user2.EMP to  user1; 
  3. grant select on user2.BONUS to  user1; 
  4. grant select on user2.SALGRADE to  user1; 
  5. grant select on user2.AVGSAL to  user1; 

3、将步骤2中的结构复制出来,使用user2用户登录oracle(conn user2/1234),将步骤2中的结果粘贴运行后就将select权限授权给了user1

四、使用管理员用户登录数据库

1、conn / as sysdba

2、将同义词权限授权给user1

grant create synonym to user1;

五、使用user2用户登录数据库

1、conn user2/1234

2、select 'create synonym '||table_name ||' for user2.'|| table_name ||';' fr
om user_tables;

模拟结果如下:

create synonym DEPT for user2.DEPT;
create synonym EMP for user2.EMP;
create synonym BONUS for user2.BONUS;

3、使用新用户登录数据库   conn user1/global

运行步骤2 中的同义词查询结果

SQL> create synonym DEPT for user2.DEPT;
同义词已创建。
SQL> create synonym EMP for user2.EMP;
同义词已创建。

六、在当前窗口或者登录pl/sql进行查询验证

 

你可能感兴趣的:(数据库,数据库)