永发信息网

oracle中Schema和User两个到底是什么关系

答案:2  悬赏:50  手机版
解决时间 2021-04-07 22:59
oracle中Schema和User两个到底是什么关系
最佳答案
一一对应的关系。
User一般是数据库使用者的叫法。
Schema则是数据库内部的称法。
全部回答
schema和user的定义如下 a schema is a collection of database objects (used by a user.). schema objects are the logical structures that directly refer to the database’s data. a user is a name defined in the database that can connect to and access objects. schemas and users help database administrators manage database security. 从定义中我们可以看出方案(schema)为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。 一个用户对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决。 oracle中虽然有create schema语句,但是它并不是用来创建一个schema的,具体见下面官方文档。 use the create schema statement to create multiple tables and views and perform multiple grants in your own schema in a single transaction. to execute a create schema statement, oracle database executes each included statement. if all statements execute successfully, then the database commits the transaction. if any statement results in an error, then the database rolls back all the statements. 这里纠正下网上一些错误的观点,oracle在创建一个用户的同时会为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同。官方文档如下 note:this statement does not actually create a schema. oracle database automatically creates a schema when you create a user (see create user). 如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过 select * from emp; 其实,这sql语句的完整写法为 select * from scott.emp 在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。 深入理解user和schema的区别 不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名, 也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下, 每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表, 可以存入不同的数据(即schema用户自己的数据)。 好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。 你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以通过alter session的方式 进入别人的房子。 这个时候,你可以看到别人房子里的家具(desc)。 如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。 至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的 主人有没有给你这样的权限了,或者你是整个大厦(db)的老大(dba)。 如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym, 同时又不想把其他schema名字放入代码中,就可以首先使用 alter session set current_schema=
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
想了解厦门的吃/住/玩地方
既然不能称为富二代,那就称为富二代的爹,努
羊年过去 猴年来到 写新年寄语20-80
铺地砖哪种橡胶锤好
谁说梅花没有泪的广场舞在线视听
额定电压460V的电机,接在380V的电源上会出现
牙缝的蛀牙很小要补吗
猪身上被蚊子咬能擦药
excel怎么使用vba让最大化工作簿
男朋友对朋友大气不怕吃对我小气又怕吃什么意
常柴485与490机体区别
射洪哪里吃饭请客价格比较便宜点
九颗行星什么时候连在一起
红星装饰材料城地址有知道的么?有点事想过去
本来我报的C2但是约考却显示的C1 是不是驾校
推荐资讯
谁有疑似杨被迷的视频
华为截屏怎么截
windows 体验指数问题 我这电脑体验指数才4.7
折叠帐篷价格一般是多少
高夫润肤露和爽肤水有什么区别
北京大兴南五环中轴路志远西桥北的东南汽车4S
距离丈量的相对误差的公式为?
健身教练考中级国职证书需要什么条件
越南蚬木砧板怎么防止裂痕怎么办
坐在板凳上能打坐吗
鑫鑫风味炸鸡朝鲜冷面地址有知道的么?有点事
精算となるため和精算になるため。翻译上有区
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?