從小白到專家 PostgreSQL技術大講堂 - Part 7:PG用戶schema相互關系
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。
Part 7:PG用戶與schema關系
內容1:PostgreSQL Schema概述
內容2:PostgreSQL 用戶與Schema
內容3:PostgreSQL schema管理
內容4:PostgreSQL public schema
內容5:PostgreSQL 模式使用建議
7.1、Schema概述
什么是schema(模式)? 用戶對象的集合叫做模式。比如:scott用戶下有表emp、dept、salgrade等,還有幾個索引,還有一些約束等等,那么scott用戶下所有對象的集合就叫scott模式。
可以把用戶下擁有的對象根據業務分類,不同的對象存放在不同的模式下。
新建的數據庫默認會創建不同的模式來管理對象。比如:information_schema、pg_catalog、pg_temp_1、pg_toast、pg_toast_temp_1、public 等。
不同的schema下可以有相同名字的表、函數等對象,互相之間是不沖突的。只要有權限,每個schema的對象是可以互相調用的。
7.2、用戶與模式對應關系
一個用戶可以創建與擁有多個模式。
一個模式只能屬于一個用戶。
普通用戶創建模式時需要授權在指定的數據庫下創建模式的權限。
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }ON DATABASE database_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] 創建用戶示例
7.3、管理模式
授權
GRANT CREATE ON DATABASE testdb TO u1;
創建模式
create schema sport; create schema art;
查看模式
testdb=> \dn
List of schemas
Name | Owner
------+-------
art | u1
public | postgres
sport | u1
授權某個模式下的對象訪問權限給其它用戶,則需要先授權訪問該模式的權限給其它用戶
GRANT USAGE ON SHEMA sch_name TO role_name;
GRANT SELECT ON sch_name.tab_name TO role_name;
刪除模式,模式只能由其擁有者或超級用戶刪除
drop schema schema_name;
刪除模式時同時刪除所依賴的對象
drop schema chema_name cascade;
7.4、Public模式
初始化數據庫時會自動創建一個Public模式,共享給所有用戶使用,任何用戶都可以把對象創建在該模式下,由于PostgreSQL下一個用戶對應多個模式,創建用 戶時沒有創建對應的默認模式,而對象都是基于模式管理的,所以創建一個公用 的模式public。
基于數據庫安全考慮,可以刪除public模式(可選)。
7.5、模式使用建議
Oracle數據庫一個用戶對應一個模式,且名字一樣。
PostgreSQL數據庫可以規劃成一個用戶對應多個模式。
基于簡化管理的目的,可以規劃成一個用戶對應一個與用戶名一樣的模式。

以上就是Part 7 - PG用戶與模式 的內容,大家可以進群一起探討,QQ交流群:752027153
微信交流群:聯系客服拉你進微信PG交流群
釘釘交流群:35822460,釘釘群內有專門視頻講解此內容