一、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;
以下为模拟结果:
- grant select on user2.DEPT to user1;
- grant select on user2.EMP to user1;
- grant select on user2.BONUS to user1;
- grant select on user2.SALGRADE to user1;
- 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进行查询验证