今天在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 可以實現只查詢當前使用者所有表,但是在查詢時,一定要在表名前加上該錶的所有者。
查詢Oracle當前使用者所有表結構
查詢當前使用者所有表結構 select tc.comments 表中文名,t.table name 表英文名,t.column name 列名,t.data type t.data length 列型別,c.comments 備註 from user tab columns t,user col c...
Oracle查詢使用者所有表
oracle 查詢使用者所有表 select from all tab comments 查詢所有使用者的表,檢視等 select from user tab comments 查詢本使用者的表,檢視等 select from all col comments 查詢所有使用者的表的列名和注釋.sel...
Oracle查詢使用者所有表
下面為您介紹的語句用於實現oracle查詢使用者所有表,如果您對oracle查詢方面感興趣的話,不妨一看。select from all tab comments 查詢所有使用者的表,檢視等 select from user tab comments 查詢本使用者的表,檢視等 select from...