新增用户查询当前用户所有表

本文探讨了在数据库中,当授予用户SELECT ANY TABLE权限后,如何正确查询当前用户所有表的方法,强调了在查询时需使用表所有者的表名前缀。通过实践测试,演示了授权过程及查询表时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在bbs上看到一位网友提出:新增用户只能查询当前用户所有表,于是简单地测试了一下:


SQL> create user aaa identified by bbb;

用户已创建。

SQL> grant select any table to aaa;

授权成功。


SQL> grant connect to aaa;

授权成功。

SQL> conn aaa/bbb
已连接。
SQL> select * from t1;
select * from t1
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> select * from system.t1;

TABLE_NAME                     STATUS
------------------------------ --------
MVIEW$_ADV_WORKLOAD            VALID
MVIEW$_ADV_BASETABLE           VALID
MVIEW$_ADV_SQLDEPEND           VALID
MVIEW$_ADV_PRETTY              VALID
MVIEW$_ADV_TEMP                VALID
MVIEW$_ADV_FILTER              VALID
MVIEW$_ADV_LOG                 VALID
MVIEW$_ADV_FILTERINSTANCE      VALID
MVIEW$_ADV_LEVEL               VALID
MVIEW$_ADV_ROLLUP              VALID
MVIEW$_ADV_WORKLOAD            VALID

TABLE_NAME                     STATUS
------------------------------ --------
MVIEW$_ADV_BASETABLE           VALID
MVIEW$_ADV_SQLDEPEND           VALID
MVIEW$_ADV_PRETTY              VALID
MVIEW$_ADV_TEMP                VALID
MVIEW$_ADV_FILTER              VALID
MVIEW$_ADV_LOG                 VALID
MVIEW$_ADV_FILTERINSTANCE      VALID
MVIEW$_ADV_LEVEL               VALID
MVIEW$_ADV_ROLLUP              VALID

已选择20行。

SQL> conn system/bbb

已连接。
SQL> revoke select any table from aaa;

撤销成功。

SQL> conn aaa/bbb
已连接。
SQL> select * from system.t1;
select * from system.t1
                     *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> select * from system.t1;
select * from system.t1
                     *
第 1 行出现错误:
ORA-00942: 表或视图不存在


SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION

SQL>

    结论:grant select any table to user 可以实现只查询当前用户所有表,但是在查询时,一定要在表名前加上该表的所有者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值