对象前面是用户名还是schema名!

我们通常访问其他用户下的对象时如果不创建同义词通常需要在被访问的对象前面加上这个对象的所有者(owner),那么这个所有者是对象的用户名还是schema?通过下面测试自己觉得应该是schema名!

[@more@]

SQL> connect b/b
已连接。
SQL> select user#,username,schema#,schemaname from v$session where sid=(select s
id from v$mystat where rownum=1);

USER# USERNAME SCHEMA# SCHEMANAME
---------- ---------- ---------- ------------------------------
35 B 35 B

--访问a用户下的tt表,事先做过了授权

SQL> select * from a.tt;

ID
----------
1

--用户b下也存在表tt

SQL> select * from tt;

未选定行

SQL> alter session set current_schema=a;

会话已更改。

SQL> select user#,username,schema#,schemaname from v$session where sid=(select s
id from v$mystat where rownum=1);

USER# USERNAME SCHEMA# SCHEMANAME
---------- ---------- ---------- ------------------------------
35 B 34 A

SQL> select * from tt;

ID
----------
1

SQL> select * from a.tt;

ID
----------
1

SQL> select * from b.tt;

未选定行

SQL>

--简单测试发现试图user_tables和当前session的schema没有关系之和user有关,当然更进一步大家也可以看user_tables的定义
SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
TT
T_DEPART
T_EMP
T1
T2
T3

已选择6行。

SQL> alter session set current_schema=b;

会话已更改。

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
TT
T_DEPART
T_EMP
T1
T2
T3

已选择6行。

SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1016243/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19602/viewspace-1016243/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值