W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
少量的對象,例如角色、數(shù)據(jù)庫和表空間名,是在集群級別定義并存儲在pg_global
表空間之中的。 集群內(nèi)部有多個數(shù)據(jù)庫,相互之間彼此隔離,但可以訪問集群級對象。 每個數(shù)據(jù)庫內(nèi)部都有多個模式,它們包含表和函數(shù)等對象。因此,完整的層級結(jié)構為:集群、數(shù)據(jù)庫、模式、表(或一些其他類型的對象,如函數(shù))。
當連接到數(shù)據(jù)庫服務器時,客戶端必須在它的連接請求中指定數(shù)據(jù)庫名稱。每個連接不可能訪問多于一個數(shù)據(jù)庫。 但是,客戶端可以對同一個數(shù)據(jù)庫打開多個連接,或可以打開不同的數(shù)據(jù)庫。 數(shù)據(jù)庫級別的安全有兩個組成部分:訪問控制(參見第 20.1 節(jié)),在連接級進行管理,還有授權控制(參見第 5.7 節(jié)),通過授權系統(tǒng)進行管理。 外部數(shù)據(jù)包裝器(參見postgres_fdw)允許一個數(shù)據(jù)庫中的對象作為其他數(shù)據(jù)庫或集群中的對象的代理。 舊的dblink模塊(參見dblink)提供了類似的功能。默認情況下,所有用戶可以使用所有連接方法連接所有的數(shù)據(jù)庫。
如果一個PostgreSQL服務器集群計劃包含不相關的項目或用戶,在很大程度上,彼此之間是不知道的,那么建議將它們放到單獨的數(shù)據(jù)庫中,并且調(diào)整相應的授權和訪問控制。 如果項目或用戶是相互關聯(lián)的,因此應該能夠互相使用彼此的資源,它們講被放在同一個數(shù)據(jù)庫中,但可能被放入相互獨立的模式中; 這提供了具有名稱空間隔離和授權控制的模塊化結(jié)構。關于模式管理的更多信息在第 5.9 節(jié)中。
雖然可以在單個集群中創(chuàng)建多個數(shù)據(jù)庫,但建議仔細考慮好處是否大于風險和限制。 特別是,共享WAL(參見第 29 章)對備份和恢復選項的影響。從用戶的角度來看,集群中的各個數(shù)據(jù)庫是隔離的,但從數(shù)據(jù)庫管理員的角度來看,它們是緊密綁定的。
數(shù)據(jù)庫是使用CREATE DATABASE
(見第 22.2 節(jié)),并且用DROP DATABASE
命令刪除(見第 22.5 節(jié))。要確定現(xiàn)有數(shù)據(jù)庫的集合,可以檢查系統(tǒng)目錄
pg_database
,例如
SELECT datname FROM pg_database;
psql程序的\l
元命令和-l
命令行選項也可以用來列出已有的數(shù)據(jù)庫。
SQL標準把數(shù)據(jù)庫稱作“目錄”,不過實際上沒有區(qū)別。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: