最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

openGauss的SCHEMA的原理及管理介紹

 更新時(shí)間:2023年02月13日 16:09:47   作者:IT邦德  
這篇文章主要為大家介紹了openGauss的SCHEMA的原理及管理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

?? 1.何為Schema摘要:

本篇介紹了openGauss的SCHEMA的原理及管理。

Schema又稱(chēng)作模式。通過(guò)管理Schema,允許多個(gè)用戶(hù)使用同一數(shù)據(jù)庫(kù)而不相互干擾,可以將數(shù)據(jù)庫(kù)對(duì)象組織成易于管理的邏輯組,同時(shí)便于將第三方應(yīng)用添加到相應(yīng)的Schema下而不引起沖突。

?????? 數(shù)據(jù)庫(kù)(database)、用戶(hù)(user)、schema、和表的關(guān)系如下圖所示:

每個(gè)數(shù)據(jù)庫(kù)包含一個(gè)或多個(gè)Schema。數(shù)據(jù)庫(kù)中的每個(gè)Schema包含表和其他類(lèi)型的對(duì)象。數(shù)據(jù)庫(kù)創(chuàng)建初始,默認(rèn)具有一個(gè)名為public的Schema,且所有用戶(hù)都擁有此Schema的usage權(quán)限,只有系統(tǒng)管理員和初始化用戶(hù)可以在public Schema下創(chuàng)建函數(shù)、存儲(chǔ)過(guò)程和同義詞對(duì)象,其他用戶(hù)即使賦予create權(quán)限后也不可以創(chuàng)建上述三種對(duì)象??梢酝ㄟ^(guò)Schema分組數(shù)據(jù)庫(kù)對(duì)象。Schema類(lèi)似于操作系統(tǒng)目錄,但Schema不能嵌套。

??????注意要點(diǎn)

相同的數(shù)據(jù)庫(kù)對(duì)象名稱(chēng)可以應(yīng)用在同一數(shù)據(jù)庫(kù)的不同Schema中 CREATE USER創(chuàng)建用戶(hù)的同時(shí),系統(tǒng)會(huì)在執(zhí)行該命令的數(shù)據(jù)庫(kù)中,為該用戶(hù)創(chuàng)建一個(gè)同名的SCHEMA 可以把schema理解成操作系統(tǒng)的目錄(文件夾),所不同的是schema只有一層,不能嵌套創(chuàng)建

?? 2.Schema語(yǔ)法

? 2.1 創(chuàng)建SCHEMA

語(yǔ)法:CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] ;

案例1:創(chuàng)建一個(gè)名為tpcds的模式

openGauss=#  create schema tpcds;
openGauss=# \dn+ tpcds
                         List of schemas
 Name  | Owner | Access privileges | Description | WithBlockChain 
-------+-------+-------------------+-------------+----------------
 tpcds | omm   |                   |             | f

? 2.2 修改SCHEMA

修改模式的名稱(chēng)語(yǔ)法:ALTER SCHEMA schema_name RENAME TO new_name; 修改模式的所有者語(yǔ)法:ALTER SCHEMA schema_name OWNER TO new_owner;

案例1:重命名tpcds為tpcds1

openGauss=# ALTER SCHEMA tpcds RENAME TO tpcds1;
ALTER SCHEMA
openGauss=# \dn+ tpcds1    
                          List of schemas
  Name  | Owner | Access privileges | Description | WithBlockChain 
--------+-------+-------------------+-------------+----------------
 tpcds1 | omm   |                   |             | f

案例2:創(chuàng)建一個(gè)用戶(hù)jeames, 并將tpcds1的owner修改為jeames

openGauss=# CREATE USER jeames PASSWORD 'abcd@123';
CREATE ROLE
openGauss=# \dn
     List of schemas
      Name       | Owner  
-----------------+--------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 jeames          | jeames
 mesdb           | mesdb
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 tpcds1          | omm
(13 rows)
openGauss=# ALTER SCHEMA tpcds1 OWNER TO jeames;
ALTER SCHEMA
openGauss=# \dn+ tpcds1
                          List of schemas
  Name  | Owner  | Access privileges | Description | WithBlockChain 
--------+--------+-------------------+-------------+----------------
 tpcds1 | jeames |                   |             | f

案例3:在模式tpcds1中建表customer、插入記錄和查詢(xún)記錄 

openGauss=# create table tpcds1.customer(id int, name char(30));
CREATE TABLE
openGauss=# insert into tpcds1.customer values(1 ,'xxxx');
INSERT 0 1
openGauss=# select * from tpcds1.customer;
 id |              name              
----+--------------------------------
  1 | xxxx                          

? 2.3 刪除SCHEMA

語(yǔ)法:DROP SCHEMA schema_name; 注:不要隨意刪除pg_temp或pg_toast_temp開(kāi)頭的模式,這些模式是系統(tǒng)內(nèi)部使用的

DROP SCHEMA tpcds1 CASCADE;

?????? 補(bǔ)充

要查看屬于某Schema下的表列表,請(qǐng)查詢(xún)系統(tǒng)視圖PG_TABLES: openGauss=# SELECT distinct(tablename),schemaname from pg_tables where schemaname = 'pg_catalog';

?? 3.Schema賦權(quán)

普通schema的create權(quán)限grant給其他用戶(hù)后,其他用戶(hù)即可以創(chuàng)建對(duì)象。

分別創(chuàng)建schema teacher_zhao2、teacher_zhao3(指定AUTHORIZATION),并把create權(quán)限賦給teacher_li:
openGauss=# create SCHEMA teacher_zhao2;
CREATE SCHEMA
openGauss=# \dn+ teacher_zhao2
                             List of schemas
     Name      | Owner | Access privileges | Description | WithBlockChain 
---------------+-------+-------------------+-------------+----------------
 teacher_zhao2 | omm   |                   |             | f
openGauss=# CREATE SCHEMA teacher_zhao3 AUTHORIZATION jeames;
CREATE SCHEMA
openGauss=# \dn+ teacher_zhao3
                              List of schemas
     Name      | Owner  | Access privileges | Description | WithBlockChain 
---------------+--------+-------------------+-------------+----------------
 teacher_zhao3 | jeames |                   |             | f
可以發(fā)現(xiàn)沒(méi)有指定AUTHORIZATION的情況下,默認(rèn)創(chuàng)建用戶(hù)是clouduser(系統(tǒng)管理員),
而指定情況下,則創(chuàng)建用戶(hù)就是指定的用戶(hù)。

下面嘗試用jeames登錄,創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象teacher_zhao2.t2:

openGauss=# grant create on SCHEMA teacher_zhao2 to jeames;
openGauss=# grant all on all tables in schema teacher_zhao2 to jeames;
openGauss=# grant select on teacher_zhao2.t2 to jeames;
openGauss=> create table teacher_zhao2.t2(a int);
openGauss=# \c postgres jeames
openGauss=> create table teacher_zhao2.t2(a int);

以上就是openGauss的SCHEMA的原理及管理介紹的詳細(xì)內(nèi)容,更多關(guān)于openGauss SCHEMA管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

湟源县| 夏邑县| 安庆市| 阜南县| 介休市| 九龙县| 碌曲县| 驻马店市| 嵩明县| 彭山县| 杭州市| 徐水县| 韩城市| 讷河市| 普洱| 栾川县| 循化| 顺平县| 司法| 孝义市| 含山县| 彰武县| 和龙市| 扶余县| 嘉义县| 五家渠市| 滦平县| 十堰市| 朝阳县| 娱乐| 拉萨市| 饶河县| 双城市| 迭部县| 洛浦县| 江安县| 灌阳县| 东乡族自治县| 龙岩市| 阿合奇县| 清镇市|