【教程】PostgreSQL技術(shù)大講堂 - Part 7:PG用戶schema相互關(guān)系

PostgreSQL從小白到專家,是從入門逐漸能力提升的一個(gè)系列教程,內(nèi)容包括對PG基礎(chǔ)的認(rèn)知、包括安裝使用、包括角色權(quán)限、包括維護(hù)管理、、等內(nèi)容,希望對熱愛PG、學(xué)習(xí)PG的同學(xué)們有幫助,歡迎持續(xù)關(guān)注CUUG PG技術(shù)大講堂。
Part 7:PG用戶與schema關(guān)系
內(nèi)容1:PostgreSQL Schema概述
內(nèi)容2:PostgreSQL 用戶與Schema
內(nèi)容3:PostgreSQL schema管理
內(nèi)容4:PostgreSQL public schema
內(nèi)容5:PostgreSQL 模式使用建議
7.1、Schema概述
什么是schema(模式)? 用戶對象的集合叫做模式。比如:scott用戶下有表emp、dept、salgrade等,還有幾個(gè)索引,還有一些約束等等,那么scott用戶下所有對象的集合就叫scott模式。
可以把用戶下?lián)碛械膶ο蟾鶕?jù)業(yè)務(wù)分類,不同的對象存放在不同的模式下。
新建的數(shù)據(jù)庫默認(rèn)會創(chuàng)建不同的模式來管理對象。比如:information_schema、pg_catalog、pg_temp_1、pg_toast、pg_toast_temp_1、public 等。
不同的schema下可以有相同名字的表、函數(shù)等對象,互相之間是不沖突的。只要有權(quán)限,每個(gè)schema的對象是可以互相調(diào)用的。
7.2、用戶與模式對應(yīng)關(guān)系
一個(gè)用戶可以創(chuàng)建與擁有多個(gè)模式。
一個(gè)模式只能屬于一個(gè)用戶。
普通用戶創(chuàng)建模式時(shí)需要授權(quán)在指定的數(shù)據(jù)庫下創(chuàng)建模式的權(quán)限。
GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }ON DATABASE database_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ] 創(chuàng)建用戶示例
7.3、管理模式
授權(quán)
GRANT CREATE ON DATABASE testdb TO u1;
創(chuàng)建模式
create schema sport; create schema art;
查看模式
testdb=> \dn?
List of schemas?
Name | Owner
------+-------
art | u1
public | postgres
sport | u1
授權(quán)某個(gè)模式下的對象訪問權(quán)限給其它用戶,則需要先授權(quán)訪問該模式的權(quán)限給其它用戶
GRANT USAGE ON SHEMA sch_name TO role_name;
GRANT SELECT ON sch_name.tab_name TO role_name;
刪除模式,模式只能由其擁有者或超級用戶刪除
drop schema schema_name;
刪除模式時(shí)同時(shí)刪除所依賴的對象
drop schema chema_name cascade;
7.4、Public模式
初始化數(shù)據(jù)庫時(shí)會自動(dòng)創(chuàng)建一個(gè)Public模式,共享給所有用戶使用,任何用戶都可以把對象創(chuàng)建在該模式下,由于PostgreSQL下一個(gè)用戶對應(yīng)多個(gè)模式,創(chuàng)建用 戶時(shí)沒有創(chuàng)建對應(yīng)的默認(rèn)模式,而對象都是基于模式管理的,所以創(chuàng)建一個(gè)公用 的模式public。
基于數(shù)據(jù)庫安全考慮,可以刪除public模式(可選)。
7.5、模式使用建議
Oracle數(shù)據(jù)庫一個(gè)用戶對應(yīng)一個(gè)模式,且名字一樣。
PostgreSQL數(shù)據(jù)庫可以規(guī)劃成一個(gè)用戶對應(yīng)多個(gè)模式。
基于簡化管理的目的,可以規(guī)劃成一個(gè)用戶對應(yīng)一個(gè)與用戶名一樣的模式。

以上就是Part 7 - PG用戶與模式 的內(nèi)容,大家可以進(jìn)群一起探討,
釘釘交流群:358,22,460,釘釘群內(nèi)有專門視頻講解此內(nèi)容