版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/spt_dream/article/details/89382640
给用户B授权使用用户A中的部分表;
1、system用户登录sql plus;
我用navicat登录查看不到效果,登录方法为cmd打开命令行 然后 输入SQLPLUS(注意没空格)回车 输入system 然后输入数据库密码,见下图
2、创建用户B
[sql] view plain copy
- create user 用户B identified by 密码
- default tablespace 表空间;
3、给用户B赋予登录权限
[sql] view plain copy
- grant create session to 用户B;
4、登录用户A
[sql] view plain copy
- connect 用户A/密码;<
5、给用户B授权使用用户A里面的某个表或者视图
[sql] view plain copy
- grant select on 表/视图 to 用户B;
注意;如果表很多,可以用 下面的脚本快速生成;
select 'grant select on '||table_name||' to 你的用户;' from user_tables where tablespace_name='USERS'
6、测试是否授权成功
[sql] view plain copy
- connect 用户B/密码;
- select * from 用户A.表/视图;
7、取消授权
[sql] view plain copy
- connect 用户A/密码;
- revoke select on 表/视图 from 用户B;
8、我们在做dblink的时候就可以使用刚刚创建的用户B来登录
9、在dblink中使用,就可以使用用户B来登录,这样连接做的权限只能访问上面授权的表或视图;
[sql] view plain copy
- select * from 用户A.表/视图@dblink name;
好了,到此就结束了,记录一下,方便以后还会用到。