瀚高數(shù)據(jù)庫基于PostgreSQL,所以在上述概念理解上與PostgreSQL一致,下面我將根據(jù)自己親身實(shí)踐,簡述用戶、模式、數(shù)據(jù)庫、表空間之間的關(guān)系。
一、概念簡述
1、用戶
在PostgreSQL中,用戶與角色幾乎是相同的概念,唯一的區(qū)別是用戶創(chuàng)建時(shí)默認(rèn)帶LOGIN權(quán)限,而角色默認(rèn)是不帶登錄權(quán)限的。
用戶是訪問數(shù)據(jù)庫的唯一標(biāo)識,是各種數(shù)據(jù)庫權(quán)限的的唯一代表,也就是你通過用戶來完成數(shù)據(jù)庫的所以操作。所以,用戶是一個(gè)獨(dú)立的概念。
2、模式
模式簡單理解就是數(shù)據(jù)庫的邏輯劃分,一個(gè)數(shù)據(jù)庫里面可能會(huì)有各種不同應(yīng)用的數(shù)據(jù),將這些數(shù)據(jù)(表、函數(shù)、試圖、索引、序列等)存儲在不同的模式中,不同應(yīng)用互不干擾,便于管理。
3、數(shù)據(jù)庫
數(shù)據(jù)庫是數(shù)據(jù)的載體,用戶可以對數(shù)據(jù)庫進(jìn)行創(chuàng)建、修改和刪除操作。
4、表空間
在PostgreSQL中,表空間用來指定一個(gè)物理存儲空間,在這個(gè)存儲空間存儲數(shù)據(jù)庫相關(guān)的數(shù)據(jù)文件。
二、模式、數(shù)據(jù)庫、表空間的關(guān)系。
可以通過下圖簡單了解模式、數(shù)據(jù)庫、表空間的關(guān)系。
數(shù)據(jù)庫與表空間:數(shù)據(jù)庫在新建時(shí)可以指定表空間,表空間為數(shù)據(jù)庫的物理存儲位置。可以多個(gè)數(shù)據(jù)庫指定一個(gè)表空間,如果不指定則默認(rèn)表空間。注意:一個(gè)表也可以指定表空間,所以一個(gè)表可以不選擇此表所在數(shù)據(jù)庫的表空間,這種情況少見。
數(shù)據(jù)庫與模式:數(shù)據(jù)庫下面可以建立多個(gè)模式,模式下對數(shù)據(jù)庫的表、索引、函數(shù)等進(jìn)行邏輯區(qū)分。數(shù)據(jù)庫默認(rèn)創(chuàng)建public模式,該模式下的數(shù)據(jù)。
三、用戶與三者的關(guān)系
用戶是三者權(quán)限的體現(xiàn)。數(shù)據(jù)庫、表空間、模式都是通過用戶授權(quán)進(jìn)行管理,一個(gè)數(shù)據(jù)庫的所有者和數(shù)據(jù)庫所在的表空間的所有者可以不同,所以用戶在這三個(gè)的管理上是相互獨(dú)立,沒有依賴關(guān)系,在用戶權(quán)限上,postgresql是非常靈活自由的。