1. 程式人生 > >Oracle同義詞(synonym)

Oracle同義詞(synonym)

oracle的同義詞總結

  從字面上理解就是別名的意思,和檢視的功能類似。就是一種對映關係。

  同義詞擁有如下好處:

  節省大量的資料庫空間,對不同使用者的操作同一張表沒有多少差別;
  擴充套件的資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫互動;
  同義詞可以建立在不同一個數據庫伺服器上,通過網路實現連線。

  Oracle資料庫中提供了同義詞管理的功能。Oracle同義詞是資料庫方案物件的一個別名,經常用於簡化物件訪問和提高物件訪問的安全性。

  在Oracle中對使用者的管理是使用許可權的方式來管理的,也就是說,如果我們想使用資料庫,我們就必須得有許可權,但是如果是別人將許可權授予了我們,我們也是能對資料庫進行操作的,但是我們必須要已授權的表的名稱前鍵入該表所有者的名稱,所以這就是比較麻煩的,遇到這種情況,我們該怎麼辦呢?建立個Oracle同義詞吧!這樣我們就可以直接使用同義詞來使用表了。

1. 同義詞的概念

  Oracle資料庫中提供了同義詞管理的功能。同義詞是資料庫方案物件的一個別名,經常用於簡化物件訪問和提高物件訪問的安全性。在使用同義詞時,Oracle資料庫將它翻譯成對應方案物件的名字。與檢視類似,同義詞並不佔用實際儲存空間,只有在資料字典中儲存了同義詞的定義。在Oracle資料庫中的大部分資料庫物件,如表、檢視、同義詞、序列、儲存過程、包等等,資料庫管理員都可以根據實際情況為他們定義同義詞。

2. Oracle同義詞的分類

  Oracle同義詞有兩種型別,分別是公用Oracle同義詞與私有Oracle同義詞。

  • 公用Oracle同義詞:由一個特殊的使用者組Public所擁有。顧名思義,資料庫中所有的使用者都可以使用公用同義詞。公用同義詞往往用來標示一些比較普通的資料庫物件,這些物件往往大家都需要引用。
  • 私有Oracle同義詞:它是跟公用同義詞所對應,他是由建立他的使用者所有。當然,這個同義詞的建立者,可以通過授權控制其他使用者是否有權使用屬於自己的私有同義詞。

3. Oracle同義詞建立及刪除

  建立公有Oracle同義詞的語法:

  create [public] synonym 同義詞名稱 for [username.]objectName;

  create public synonym table_name for user.table_name;

  其中第一個user_table和第二個user_table可以不一樣。
此外如果要建立一個遠端的資料庫上的某張表的同義詞,需要先建立一個Database Link(資料庫連線)來擴充套件訪問,然後在使用如下語句建立資料庫同義詞:

  create synonym table_name for [email protected]_Link;

  當然,你可能需要在user使用者中給當前使用者(user2)授權:

  grant select/delete/update on user2;

4. 檢視所有同義詞:

  select * from dba_synonyms;

5. Oracle同義詞的作用

  • 多使用者協同開發中,可以遮蔽物件的名字及其持有者。如果沒有同義詞,當操作其他使用者的表時,必須通過user名.object名的形式,採用了Oracle同義詞之後就可以隱蔽掉user名,當然這裡要注意的是:public同義詞只是為資料庫物件定義了一個公共的別名,其他使用者能否通過這個別名訪問這個資料庫物件,還要看是否已經為這個使用者授權。
  • 為使用者簡化sql語句。上面的一條其實就是一種簡化sql的體現,同時如果自己建的表的名字很長,可以為這個表建立一個Oracle同義詞來簡化sql開發。
  • 為分散式資料庫的遠端物件提供位置透明性。

6. Oracle同義詞在資料庫鏈中的作用

  資料庫鏈是一個命名的物件,說明一個數據庫到另一個數據庫的路徑,通過其可以實現不同資料庫之間的通訊:

  Create database link 資料庫鏈名 connect to 使用者名稱 identified by 口令 using ‘Oracle連線串’;

  訪問物件要通過object名@資料庫鏈名。同義詞在資料庫鏈中的作用就是提供位置透明性。

相關推薦

Oracle同義詞synonym

oracle的同義詞總結   從字面上理解就是別名的意思,和檢視的功能類似。就是一種對映關係。   同義詞擁有如下好處:   節省大量的資料庫空間,對不同使用者的操作同一張表沒有多少差別;   擴充套件的資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫互動;   同義詞可以建立在不同一個數據庫

Oracle創建database link(dblink)和同義詞synonym

實現 個數 數據庫表 reat synonym 通過 yun sdn code 同一個數據庫不同用戶之間建立dblink和synonym 1.建立dblink 實現在A用戶下通過dblink訪問B用戶下的數據庫表,需要在A用戶下創建訪問B庫的dblink連接 --創建遠程

oracle 審計

分數 效果 opera run 審計 官方 導出 註意 per 一、何謂數據庫審計? 數據庫審計,就是對數據庫的活動做跟蹤記錄,主要包括數據庫連接,SQL語句執行,數據庫對象訪問這些方面的跟蹤記錄。 二、審記記錄的存儲方式 分為兩種:一種是存儲在操作系統文件中,一種是存

ORACLE直方圖10g

values reat user 好的 創建 ogr dbm ams oracle 為什麽需要直方圖 ?當表中一列數據比較的值分布比較均勻時,optimzer可以很好的通過最大值,最小值和NDV(唯一值的個數),就可以判斷出cardinality.對於cardinality

Oracle RACLinux搭建

重新 註意 ip地址 passwd note manager system app eal 1、前言 此文檔詳細描述了Oracle 11gR2 數據庫在AIX上的安裝RAC的需求及安裝步驟。 參考文檔 《Oracle? Real Application Clusters

oracle學習

管理 pass 失敗 emp 你好 spool acc manage 獲取 作為一個入門選手,怕忘記,所以所有東西都盡量寫下來。(省略oracle11g的安裝過程) 一、sqlpuls用sys賬戶登錄 (sqlplus是客戶端連上服務器的一個工具) 1.使用cmd控制臺登

Oracle筆記 單行函數

sys 字符函數 下標 年份 智能 功能 存在 oracle數據庫 一個數據庫 Oracle筆記(五) 單行函數 雖然各個數據庫都是支持SQL語句的,但是每一個數據庫也有每一個數據庫自己所支持的操作函數,這些就是單行函數,而如果要想進行數據庫開發的話,除了要會使用SQL

Oracle筆記 多表查詢

針對 多人 筆記 padding 工資 cells 找到 mem 概念 Oracle筆記(六) 多表查詢 本次預計講解的知識點 1、 多表查詢的操作、限制、笛卡爾積的問題; 2、 統計函數及分組統計的操作; 3、 子查詢的操作,並且結合限定查詢、數據排序、多表查詢、統計

Oracle筆記 SQLPlus命令

建立 sql 後綴 一個數 例程 imm 模式 命令行 rac Oracle筆記(二) SQLPlus命令 對於Oracle數據庫操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,對於sqlplus有兩種形式。 一種是dos風格的sqlplus:sql

Oracle筆記 約束

完整 編號 ins 非空約束 where check 字段 使用 四種 Oracle筆記(十) 約束 表雖然建立完成了,但是表中的數據是否合法並不能有所檢查,而如果要想針對於表中的數據做一些過濾的話,則可以通過約束完成,約束的主要功能是保證表中的數據合法性,按照約束的分

Oracle複習3

26 Oracle 預設事務是開啟的 但是不自動提交 Mysql 是自動提交的 預設不開啟事務或者本身並不支援事務 27 事務的概念 資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作, 要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務

oracle角色role和許可權privilege

0 建立測試使用者 create user soctt identified by 11; grant dba to scott; create user one identified by 11; 1 角色role -- 查詢所有角色, connect/resource

oracle優化

1. 選用合適的ORACLE優化器 ORACLE的優化器有3種: a. RULE(基於規則)b. COST(基於成本) c. CHOOSE(選擇性) 選擇預設的優化器,可以通過對init.ora中OPTIMIZER_MODE引數的各種宣告,如RULE, COST, CHOOSE, ALL_ROWS, FI

Oracle學習

1.oracle基本概念 資料庫: Oracle資料庫是資料的物理儲存。這就包括(資料檔案ORA或者DBF、控制檔案、聯機日誌、引數檔案)。其實Oracle資料庫的概念和其它資料庫不一樣,這裡的資料庫是一個作業系統只有一個庫。可以看作是Oracle就只有一個大資

Oracle基礎pl/sql進階(分頁過程)

   編寫分頁過程         通過pl/sql實現分頁過程,再該過程中由簡單到難一步步深入,目的在於通過該案例熟悉pl/sql的各種儲存過程,包,遊標,如何在java中呼叫等內容的學習。    1、無返回值的儲存過程      例如 1、可以向book表新增書,  

oracle叢集RAC和主備資料同步DataGuard思路

Oracle主備庫資料同步使用DataGuard。Data Guard 是Oracle的遠端複製技術,它有物理和邏輯之分,但是總的來說,它需要在異地有一套獨立的系統,這是兩套硬體配置可以不同的系統,但是這兩套系統的軟體結構保持一致,包括軟體的版本,目錄儲存結構,以及資料的

oracle筆記9---- 史上最全oracle練習題

13.列出所有員工及直接上級的姓名 Select e.ename, nvl (m.ename, '沒有上級') mname from emp e left join emp m on e.mgr = m.empno 14.列出受僱日期早於其直接上級的所有員工的編號,姓名,部門名稱 select e.empno

Oracle學習4--序列sequence、函式Function

1 建立序列 create sequence bookid  --建立序列,名為bookid start with 1                           --從1開始 increment by 1                    --每次增加1 m

C++使用POCO庫連線oracle資料庫ODBC

POCO庫是個功能很強大的工具庫,這次專案中就用到了POCO庫中的DATA連線資料庫的方式,直接上程式碼!         //使用ODBC的方式連線oracle資料庫 ODBC::Connector::registerConnector();//註冊 Ses

oracle-安裝11GR2-和隨機啟動

本文件提供CentOS 6.6作業系統下Oracle 11.2.0.4的安裝說明,以便於相關人員順利安裝Oracle 11.2.0.4資料 一 安裝準備 1、已安裝完成的CentOS 6.6作業系統; 2、Oracle 11.2.0.4 For Linux 64位安裝程式