管理平台接口是什么,了解接口的作用和用途
317
2022-11-05
我可以修改schema吗--schema和登录user的关系
作者:三十而立
想到前几天一个网友朋友问过的schema的问题, schema和user的关系
v$session表里的username和schemaname都是一样的,有什么意义? 但是时间仓促,大致的解释了一下,今天看到那个帖子。
,感到自己还没有解释的清楚,今天特地总结了一下。以供网友参考
当我们用用户登录sqlplus或者其他客户端登录Oracle数据库的时候,都会建立连接session,默认情况下,当一个用户登录的时候,schema是这个用户的schmea
SQL>conn test1/test1; Connected. SQL> show user; USER is "TEST1" SQL>select sys_context('userenv', 'current_schema') from dual; SYS_CONTEXT('USERENV','CURRENT_SCHEMA') -------------------------------------------------------------------------------- TEST1 可以看到这里的test1用户登录以后的schema是TEST1 我们查一查session,也可以看到test1这个用户的session里使用的schema SQL> select username, schemaname from v$session where username='TEST1'; USERNAME SCHEMANAME ------------------------------ ------------------------------ TEST1 TEST1 现在我们通过alter session set current_context来修改这个schema SQL> alter session set current_schema=system; SQL> show user; USER is "TEST1" 用户还是test1 SQL> select sys_context('userenv', 'current_schema') from dual; SYS_CONTEXT('USERENV','CURRENT_SCHEMA') -------------------------------------------------------------------------------- SYSTEM schema已经切换到了system的schema叻 在session里查查看 SQL> select username, schemaname from v$session where username='TEST1'; USERNAME SCHEMANAME ------------------------------ ------------------------------ TEST1 SYSTEM】 这里也显示为systenm叻 注意这里切换的是schema而已,也就是说你建表时是建立在哪个schema里而已,session中的用户并没有切换,也就是说all_tables, user_tables这些和session里的user有关的结果不会发生改变 比如 SQL> select table_name from user_tables; TABLE_NAME -------------------------------------------------------------------------------- T1_111 TABLE_1111 TEMP_TABLE2 TEMP_TABLE3 我们这里看到的还是当前用户test1里看到的建立的表而已,有兴趣可以 根据我的文章 数据字典-数据字典表 里介绍的内容 追溯一下这个all_tables视图的sql语句 当然现在如果你建表的时候 都是建立在当前的schema里的, 如果不指定表空间的话,还是用的当前用户的表空间。 如果没有在当前schema建表权限的会,会报ORA-01031: insufficient privileges SQL> create table test_schema (id int); create table test_schema (id int) * ERROR at line 1: ORA-01031: insufficient privileges
如果没有那句“三十而立”,三十岁的男人正可以轻轻松松
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~