Oracle schema 和 user 区别

文章目录

解释

  • 每个 user 都有一个独立的 schema,且 scheme 和 user 同名
  • user 所拥有的是系统的资源和权限,而 schema 仅仅指系统的资源(table、index、pkg 等等)

Oracle 12.2 官方文档 - Schema 解释

网络例子:

    " 好比一个房子,里面放满了家具,对这些家具具有支配权的是房子的主人(user),而不是房子(schema)。
     你可以是一个房子的主人(user),拥有自己的房子(schema),也可以通过 alter session 的方式进入别人的房子。如果你没有特别指定的话,你所做的操作都是正对你当前所在房子中的东西。至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的主人有没有给你这样的权限了,或者你是整个大厦(database)的老大(DBA)"

-- 效果等同于 同义词 synonym
alter session set current_schema = 其它 schema 名字; -- 不需要引号,如 '其它 schema 名字'

实例说明

  • system 登录,创建用户并授权(因为 system 是 DBA用户,所以可以看到所有表)
create user test_user identified by 12345;

grant create session to test_user;

在这里插入图片描述

  • test_user 用户去查询 scott 用户下的表 emp

在这里插入图片描述

  • 可以进入别人房间的前提:别人授权给你

在这里插入图片描述

小提示:授权完成后,下列几句话效果等同

desc scott.emp; -- 效果等同于下面两句话(参考: '同义词' )

alter session set current_schema = scott;
desc emp;

猜你喜欢

转载自blog.csdn.net/qq_34745941/article/details/106792219