新增用户查询当前用户所有表
2010-09-09 20:17
211 查看
今天在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 可以实现只查询当前用户所有表,但是在查询时,一定要在表名前加上该表的所有者。
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 可以实现只查询当前用户所有表,但是在查询时,一定要在表名前加上该表的所有者。
相关文章推荐
- sqlserver 查询当前数据库中的所有用户表,当前数据库中所有列
- Oracle 数据库下 查询当前用户下所有表的记录总数
- 查询当前用户下所有的子用户
- postgresql查询所有系统表,当前用户,当前时间戳
- 查询当前用户下的所有表信息
- Oracle 数据库下 查询当前用户下所有表的记录总数
- oracle sql查询 当前用户的所有表的字段信息
- SqlServer_表结构查询_查询当前用户所有表名
- oracle查询当前用户下的所有表、表对应的所有表字段、表的主键字段名称
- oracle实验5:查询当前用户的所有表和视图
- Oracle查询当前用户下的所有表及sqlplus 设置 列宽
- postgresql查询所有系统表,当前用户,当前时间戳
- 转:oracle 子查询创建表,表的重命名,给表和列添加注释,显示当前用户所有表,复制已存在表结构到新表
- 查询数据库里当前用户下的所有表的总共数据sql
- Oracle查询数据库中当前登录用户所有表的记录数
- Scripts:查询属于当前用户的所有表dba_tables_current_user.sql
- 查询Oracle当前登录用户的所有权限
- 查询当前用户下所有的表机构
- Struts2+Spring+Hibernate step by step 05 使用Spring查询显示所有用户
- oracle—将指定用户下所有表的查询权限赋给另一个用户