schema和user区别

       以下是自己对schema和user概念的理解

  
     认识这两个概念,我认为从结果向源头推导更容易理解为什么oracle会建立这两个用起来如此相似的概念。
     我们以餐厅和人举例,假设我们大街上看到10个人,10个餐厅。我们知道人名:人[1],人[2],人[3],人[4],人[5],人[6],人[7],人[8],人[9],人[10]。我们还不知道餐馆的名字,为区分给其编号:餐厅[1],餐厅[2],餐厅[3],餐厅[4],餐厅[5],餐厅[6],餐厅[7],餐厅[8],餐厅[9],餐厅[10],每个餐厅都有不同的菜式。餐厅和人是两个独立的物体,每个人可以选择不同的餐馆吃饭。我们在一个oracle数据库看到有schema和user两个概念。我们理解schema就是一个餐厅,不同的菜式相当与不同的方案对象,数据库中user就是相当于现实中的人。跟餐厅和人一样,schema和user也是两个不同的物体。每个user可以访问不同的schema。

      我们打听道编号为“餐厅[1]”的餐馆是由人[1]建立的,编号为“餐厅[2]”的参款是由人[2]建立的,以次类推,原来每个餐厅都是每个人各自建立的。虽然如此,但餐厅和人扔是两个独立的物体,每个人仍然可以选择不同的餐馆吃饭,尽管餐馆是每个人独自建立的。跟人和餐厅一样,schema和user仍是两个独立的物体存在于oracle中,尽管是user建立了schema里的schema object。
      我们又看到餐馆招牌上的名字其实就是人的名字,即编号为“餐馆[1]”的餐馆招牌上的名字就叫人[1]。同时我们也发现oracle中的schema名居然也是跟user一样。但是餐馆和人仍然是独立存在的,尽管是人建立了餐馆,尽管餐馆名与人名一样。同样的,schema和user也仍然是独立存在的,尽管是user建立了schema里的schema object,尽管schema名与user一样。

      我们又打听到每个餐馆的老板是建造餐馆的人,每个人可以对自己的餐馆的菜色,陈设进行修改,并且以前每个人只能在自己建立的的餐馆吃饭。后来由于实际需要,每个餐馆建造者同意别的人可以进自己餐馆吃饭,更有甚者同意别人对自己餐馆的菜色,陈设进行修改。同样的,对于每个user来说,都有自己所属的schema,对自己建立的schema object(这些schema object组成了schema)有很大的权限,之所以别的user能访问自己建立的schema object,是经过自己授权的。
      我们打算去其中一家餐馆吃饭,我们可以说去谁开的餐馆去吃,也可以说在餐馆名叫XX的吃,但是对于数据库来说,如果要访问某个schema中的schema object,需要指定的是schema名,而不能用建立schema object的user名,例如 select * from SCOTT.table_test,SCOTT为schema的名字,而不是user的名字,尽管两者名字是一样的。schema的名可以省略,用的是登陆用户所属的schema

       至此我们可以总结:schema和user是两个独立的抽象物体,schema内的schema object是由user建立的,user对自己建立的,组成schema的schema object有很大的权限,访问一个schema object需要指定的是schema名,而不是user名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值