Oracle 中 dba_*、all_*、user_* 之间的区别

文章目录

1 结论

1. 结论:'权限大小不同': dba_* > all_* > user_*
   (1) dba_* : 可以访问 '数据库' 中所有的对象(前提:该用户是 dba 用户)
   (2) all_* :某一用户 '拥有' 的或 '可以访问' 的所有的对象
   (3) user_*:某一用户 '拥有' 的所有对象

2. 查询是否是 dba 用户
   select * from dba_role_privs t where t.granted_role = 'DBA';

dba 用户查询结果:

grantee	granted_role
SYS		DBA
SYSTEM	DBA

2 示例

-- 如:查询表定义信息
select * from dba_tab_comments;
select * from all_tab_comments;
select * from user_tab_comments;


若现在有两个普通用户 scott 和 hr,其中 hr 中存在表 jobs
以 'scott' 为例 -- 登录用户
1. user_tab_comments 和 all_tab_comments '均无法查询' 到表 jobs

2. 当 hr 将表 jobs 的 select 权限授予 scott 时
   (1) user_tab_comments 依旧查询不到表 jobs('表 jobs 不是 scott 拥有的对象'(2) all_tab_comments  中能够查询到表 jobs('授权,虽不拥有,但可以访问'3. system 是 'dba' 用户,可以访问任何对象(不需要授权, '我是老板,我很牛皮!'

图示:(虚线:无法访问,实线:能否访问)

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值