要在Oracle数据库中创建新的查询用户,以便可以访问表和视图等信息
一、登录DBA权限的账号
1、可以使用命令窗口登录,进行数据库管理
conn sys/sys123 as sysdba;
2、也可以使用plsql登录
以上两种方式自选其一登录。
二、新建表空间、用户
此部分操作由于在另一篇随笔中有详细记录,这里不再赘述,需要的可自行查找。
三、赋权限
1、为查询用户赋连接权限
grant connect to query;
2、为查询用户赋创建同义词权限
grant create synonym to query;
3、为查询用户赋赋予只读权限
grant select_catalog_role,create session to query;
四、 赋予查询权限
1、将base用户下的user表查询权限赋予给query用户
grant select on base.user to query;
2 、所有表的查询权限
生成赋权脚本(将base用户下的所有表查询权限赋予给query用户)
select 'grant select on base.' || table_name || ' to test_cx;' from user_tables;
执行上述sql语句,生成赋权语句,将生成的语句全部执行完后,既赋权完毕
五、为query用户创建同义词若不创建同义词,那么query用户查询表时,必须使用base.user这类的写法。 由于前面已经为query用户赋予创建同义词权限,因此可以登录query用户直接创建。
1、 为指定表"user"创建同义词
create or replace synonym query.user for base.user;
2、 为所有表创建同义词
下面的sql语句是用来批量生成创建同义词执行语句的,生成的语句全部执行后,即可完成对所有表创建同义词。需要管理员权限。
select 'create or replace synonym base.'||object_name||' for '||owner||'.'||object_name||';' from dba_objects where owner in ('base') and object_type='TABLE';
标签:用户,查询,base,user,Oracle,query,权限 From: https://www.cnblogs.com/sunzhihua/p/17849676.html