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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章