91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

openGauss的SCHEMA的原理及管理方法是什么

發布時間:2023-02-14 09:36:19 來源:億速云 閱讀:110 作者:iii 欄目:開發技術

這篇文章主要介紹“openGauss的SCHEMA的原理及管理方法是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“openGauss的SCHEMA的原理及管理方法是什么”文章能幫助大家解決問題。

    1.何為Schema摘要:

    Schema又稱作模式。通過管理Schema,允許多個用戶使用同一數據庫而不相互干擾,可以將數據庫對象組織成易于管理的邏輯組,同時便于將第三方應用添加到相應的Schema下而不引起沖突。

    數據庫(database)、用戶(user)、schema、和表的關系如下圖所示:

    openGauss的SCHEMA的原理及管理方法是什么

    每個數據庫包含一個或多個Schema。數據庫中的每個Schema包含表和其他類型的對象。數據庫創建初始,默認具有一個名為public的Schema,且所有用戶都擁有此Schema的usage權限,只有系統管理員和初始化用戶可以在public Schema下創建函數、存儲過程和同義詞對象,其他用戶即使賦予create權限后也不可以創建上述三種對象。可以通過Schema分組數據庫對象。Schema類似于操作系統目錄,但Schema不能嵌套。

    注意要點

    相同的數據庫對象名稱可以應用在同一數據庫的不同Schema中 CREATE USER創建用戶的同時,系統會在執行該命令的數據庫中,為該用戶創建一個同名的SCHEMA 可以把schema理解成操作系統的目錄(文件夾),所不同的是schema只有一層,不能嵌套創建

    2.Schema語法

    ? 2.1 創建SCHEMA

    語法:CREATE SCHEMA schema_name [ AUTHORIZATION user_name ] ;

    案例1:創建一個名為tpcds的模式

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

    openGauss的SCHEMA的原理及管理方法是什么

    ? 2.2 修改SCHEMA

    修改模式的名稱語法:ALTER SCHEMA schema_name RENAME TO new_name; 修改模式的所有者語法: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:創建一個用戶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

    openGauss的SCHEMA的原理及管理方法是什么

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

    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

    語法:DROP SCHEMA schema_name; 注:不要隨意刪除pg_temp或pg_toast_temp開頭的模式,這些模式是系統內部使用的

    DROP SCHEMA tpcds1 CASCADE;

    openGauss的SCHEMA的原理及管理方法是什么

    補充

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

    openGauss的SCHEMA的原理及管理方法是什么

    3.Schema賦權

    普通schema的create權限grant給其他用戶后,其他用戶即可以創建對象。

    分別創建schema teacher_zhao2、teacher_zhao3(指定AUTHORIZATION),并把create權限賦給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
    可以發現沒有指定AUTHORIZATION的情況下,默認創建用戶是clouduser(系統管理員),
    而指定情況下,則創建用戶就是指定的用戶。

    下面嘗試用jeames登錄,創建數據庫對象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的原理及管理方法是什么

    關于“openGauss的SCHEMA的原理及管理方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    全州县| 交口县| 曲松县| 南宫市| 衡山县| 明星| 含山县| 芦溪县| 万全县| 海城市| 库车县| 泾川县| 锦州市| 梧州市| 深水埗区| 彭山县| 包头市| 梓潼县| 兴文县| 左权县| 荣成市| 剑阁县| 崇信县| 鹿泉市| 武乡县| 邹城市| 台中县| 蒙自县| 喀喇| 墨玉县| 桑日县| 六枝特区| 慈利县| 德化县| 花莲县| 正安县| 长葛市| 陇西县| 南康市| 洱源县| 凤阳县|