【云小課】EI第24課 GaussDB(DWS)數據落盤安全嗎?來直面三大靈魂拷問!

      網友投稿 655 2025-03-31

      GaussDB(DWS)作為一款運行在華為云上的核心數據倉庫,客戶大量的數據存儲在DWS的數據節點中,DWS不僅擁有海量數據查詢的極致性能,在安全方面還需要有加固防護措施。

      當前數據庫都是多個用戶共同訪問數據,這些數據都具有重要價值,關系到用戶的核心資產和用戶隱私,如何禁止別有用心的用戶竊取以及黑客攻擊,本課程給您提供數據的安全管理方法。

      云數倉安全層層防護

      云數倉外部:由華為云的云安全管理產品保駕護航。如:Anti-DDoS、DDoS、Web應用防火墻、漏洞掃描服務、企業主機安全、數據加密服務、SSL證書管理、云堡壘機等。

      云數倉內部:主要通過三權分立、行級訪問控制、審計管理三種方式進行防護。這三方式結合到數據開發實際場景中,簡單可以概括為(1)誰能看?(2)能看啥?(3)看沒看? 下面我們從這三個方面一一介紹:

      (1)誰能看?

      通過DWS三權分立模型,將管理員分成三類:系統管理員,安全管理員和審計管理員,不存在“一手遮天”的管理員,當某個管理員密碼泄露時,使數據庫破壞降到最低。從此各司其職,安全管理員負責用戶,審計管理員負責日志審計,系統管理員負責系統運維。

      管理員名稱

      能否創建用戶

      能否查看審計日志

      是否有系統管理員權限

      系統管理員

      安全管理員

      審計管理員

      開啟三權分立后,對象權限變化如下表說明:

      對象名稱

      系統管理員

      安全管理員|審計管理員

      表空間

      對表空間有創建、修改、刪除、訪問、分配操作的權限。

      不具有對表空間進行創建、修改、刪除、分配的權限,訪問需要被賦權。

      對所有表有所有的權限。

      僅對自己的表有所有的權限,對其他用戶的表無權限。

      索引

      可以在所有的表上建立索引。

      僅可以在自己的表上建立索引。

      模式

      對所有模式有所有的權限。

      僅對自己的模式有所有的權限,對其他用戶的模式無權限。

      函數

      對所有的函數有所有的權限。

      僅對自己的函數有所有的權限,對其他用戶放在public這個公共模式下的函數有調用的權限,對其他用戶放在其他模式下的函數無權限。

      自定義視圖

      對所有的視圖有所有的權限。

      僅對自己的視圖有所有的權限,對其他用戶的視圖無權限。

      系統表和系統視圖

      可以查看所有系統表和視圖。

      只可以查看部分系統表和視圖。

      對象名稱

      系統管理員

      安全管理員|審計管理員

      表空間

      無變化

      無變化。

      權限縮小。只對自己的表有所有權限,對其他用戶放在屬于各自模式下的表無權限。

      無變化。

      【云小課】EI第24課 GaussDB(DWS)數據落盤安全嗎?來直面三大靈魂拷問!

      索引

      權限縮小。只可以在自己的表上建立索引。

      無變化。

      模式

      權限縮小。只對自己的模式有所有的權限,對其他用戶的模式無權限。

      無變化。

      函數

      權限縮小。只對自己的函數有所有的權限,對其他用戶放在屬于各自模式下的函數無權限。

      無變化。

      自定義視圖

      權限縮小。只對自己的視圖及其他用戶放在public模式下的視圖有所有的權限,對其他用戶放在屬于各自模式下的視圖無權限。

      無變化。

      系統表和系統視圖

      無變化。

      無變化。

      開啟方法:

      錄GaussDB(DWS) 管理控制臺。在左側導航樹中,單擊“集群管理”。

      在集群列表中,單擊指定集群的名稱,然后單擊“安全設置”,打開三權分立開關。

      依次設置安全管理員用戶名、密碼、審計管理員用戶、密碼。

      單擊“應用”。在彈出的“保存配置”窗口中,選擇是否勾選“立即重啟集群”,然后單擊“是”,重啟后生效。

      (2)能看啥?

      行級訪問控制特性是將數據庫訪問控制精確到數據表行級別,使數據庫達到行級訪問控制的能力。不同用戶執行相同的SQL查詢操作,讀取到的結果是不同的。即同一張表,不同用戶只能查看自身相關的數據信息,不能查看其他用戶的數據信息。

      GaussDB(DWS)主要通過“ALTER TABLE tablename ENABLE ROW LEVEL SECURITY”語法實現行級訪問控制,示例如下:

      創建用戶alice, bob, peter。

      CREATE ROLE alice PASSWORD 'Gauss@123'; CREATE ROLE bob PASSWORD 'Gauss@123'; CREATE ROLE peter PASSWORD 'Gauss@123';

      創建表public.all_data,包含不同用戶數據信息。

      CREATE TABLE public.all_data(id int, role varchar(100), data varchar(100));

      向數據表插入數據。

      INSERT INTO all_data VALUES(1, 'alice', 'alice data'); INSERT INTO all_data VALUES(2, 'bob', 'bob data'); INSERT INTO all_data VALUES(3, 'peter', 'peter data');

      將表all_data的讀取權限賦予alice,bob和peter用戶。

      GRANT SELECT ON all_data TO alice, bob, peter;

      打開行訪問控制策略開關。

      ALTER TABLE all_data ENABLE ROW LEVEL SECURITY;

      創建行訪問控制策略,當前用戶只能查看用戶自身的數據。

      CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(role = CURRENT_USER);

      查看表詳細信息。

      \d+ all_data Table "public.all_data" Column | Type | Modifiers | Storage | Stats target | Description --------+------------------------+-----------+----------+--------------+------------- id | integer | | plain | | role | character varying(100) | | extended | | data | character varying(100) | | extended | | Row Level Security Policies: POLICY "all_data_rls" USING (((role)::name = "current_user"())) Has OIDs: no Distribute By: HASH(id) Location Nodes: ALL DATANODES Options: orientation=row, compression=no, enable_rowsecurity=true

      切換至用戶alice,執行SQL"SELECT * FROM all_data"

      SET ROLE alice PASSWORD 'Gauss@123'; SELECT * FROM all_data; id | role | data ----+-------+------------ 1 | alice | alice data (1 row) EXPLAIN(COSTS OFF) SELECT * FROM all_data; QUERY PLAN ---------------------------------------------------------------- Streaming (type: GATHER) Node/s: All datanodes -> Seq Scan on all_data Filter: ((role)::name = 'alice'::name) Notice: This query is influenced by row level security feature (5 rows)

      切換至用戶peter,執行SQL"SELECT * FROM .all_data"

      SET ROLE peter PASSWORD 'Gauss@123'; SELECT * FROM all_data; id | role | data ----+-------+------------ 3 | peter | peter data (1 row) EXPLAIN(COSTS OFF) SELECT * FROM all_data; QUERY PLAN ---------------------------------------------------------------- Streaming (type: GATHER) Node/s: All datanodes -> Seq Scan on all_data Filter: ((role)::name = 'peter'::name) Notice: This query is influenced by row level security feature (5 rows)

      (3)看沒看?

      GaussDB(DWS) 支持對特定數據庫操作記錄審計日志,包括:日志保留策略、用戶越權訪問、存儲過程以及對數據庫對象的DML、SELECT、COPY和DDL操作。

      審計日志配置后,當GaussDB(DWS) 集群狀態異常,或根據業務需要,用戶可以查詢審計信息確定故障原因或定位歷史操作記錄。

      配置方法:

      登錄GaussDB(DWS) 管理控制臺。單擊“集群管理”。

      在集群列表中,單擊指定集群的名稱,然后單擊“安全設置”。

      在“審計配置”區域中,設置審計日志保留策略。

      參數名

      說明

      審計日志保留策略

      設置審計日志保留策略,支持如下兩種策略:

      “空間優先”:表示當單個節點的審計日志超過1G后,將自動淘汰審計日志。

      “時間優先”:表示在“審計日志最小保存時間(天)”內會保留審計日志,超過時間后,根據存儲容量限制(單個節點1G),對審計日志進行自動淘汰。

      審計日志最小保存時間(天)

      當“審計日志保留策略”設置為“時間優先”策略時,該參數有效。

      可選天數為0~730天,默認值為90天。

      根據需要設置以下操作的審計開關。

      參數名

      說明

      審計用戶越權訪問操作

      表示是否記錄用戶的越權訪問操作,默認關閉。

      審計DML操作

      表示是否對數據表的INSERT、UPDATE和DELETE操作進行記錄,默認關閉。

      審計SELECT操作

      表示是否對SELECT操作進行記錄,默認關閉。

      審計存儲過程執行

      表示是否在執行存儲過程和自定義函數的時候記錄操作信息,默認關閉。

      審計COPY操作

      表示是否對COPY操作進行記錄,默認關閉。

      審計DDL操作

      表示是否對指定數據庫對象的CREATE、DROP和ALTER操作進行記錄。除“Database”、“Schema”和“User”默認啟用記錄,其他默認關閉。

      GaussDB(DWS) 默認還開啟了以下的關鍵審計項。

      參數名

      說明

      關鍵審計項

      記錄用戶登錄成功、登錄失敗和注銷的信息。

      記錄數據庫啟動、停止、恢復和切換審計信息。

      記錄用戶鎖定和解鎖功能信息。

      記錄用戶權限授予和權限回收信息。

      記錄SET操作的審計功能。

      設置是否開啟審計日志轉儲功能。

      單擊“應用”。

      查看審計日志:

      只有擁有AUDITADMIN屬性的用戶才有查看權限,查詢格式如下:

      pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)

      查詢審計記錄。

      SELECT * FROM pg_query_audit('2015-07-15 08:00:00','2015-07-15 09:47:33');

      查詢結果如下:

      time | type | result | username | database | client_conninfo | object_name | detail_info | node_name | thread_id | local_port | remote_port ------------------------+---------------+--------+----------+----------------+-----------------+----------------+---------------------------------------------------------------+-----------+---------------------------------+------------+------------- 2015-07-15 08:03:55+08 | login_success | ok | dbadmin | gaussdb | gs_clean@::1 | gaussdb | login db(gaussdb) success,the current user is:dbadmin | cn_5003 | 139808902997776@490233835920483 | 9000 | 55805

      該條記錄表明,用戶ommdbadmin在2021-02-23 21:49:57.82+08登錄數據庫gaussdb。其中client_conninfo字段在log_hostname啟動且IP連接時,字符@后顯示反向DNS查找得到的主機名。

      查詢所有CN節點審計記錄。

      SELECT * FROM pgxc_query_audit('2019-01-10 17:00:00','2019-01-10 19:00:00') where type = 'login_success' and username = 'user1';

      查詢結果如下:

      time | type | result | username | database | client_conninfo | object_name | detail_info | node_name | thread_id | local_port | remote_port ------------------------+---------------+--------+----------+----------+-----------------+-------------+------------------------------------------------------+--------------+---------------------------------+- -----------+------------- 2019-01-10 18:06:08+08 | login_success | ok | user1 | gaussdb | gsql@[local] | gaussdb | login db(gaussdb) success,the current user is:user1 | coordinator1 | 139965149210368@600429968516954 | 17560 | null 2019-01-10 18:06:22+08 | login_success | ok | user1 | gaussdb | gsql@[local] | gaussdb | login db(gaussdb) success,the current user is:user1 | coordinator1 | 139965149210368@600429982697548 | 17560 | null 2019-01-10 18:06:54+08 | login_success | ok | user1 | gaussdb | gsql@[local] | gaussdb | login db(gaussdb) success,the current user is:user1 | coordinator2 | 140677694355200@600430014804280 | 17562 | null (3 rows)

      查詢結果顯示,用戶user1在CN1和CN2的成功登錄記錄。

      了解更多華為云數據倉庫GaussDB(DWS),請猛戳

      EI企業智能 云小課 數據倉庫服務 GaussDB(DWS)

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS表格文字粘貼為圖片的方法教程(wps表格如何粘貼為圖片)
      下一篇:excel怎么輸入區域(excel快速輸入區域數據
      相關文章
      久久人午夜亚洲精品无码区| 亚洲国产高清视频在线观看| 亚洲熟妇无码AV不卡在线播放 | 亚洲AV无码乱码国产麻豆穿越 | 亚洲精品成a人在线观看| 亚洲av永久无码精品网址| 亚洲欧美国产日韩av野草社区| 亚洲制服丝袜第一页| 久久狠狠爱亚洲综合影院 | 亚洲午夜无码片在线观看影院猛| 国产成人不卡亚洲精品91 | 亚洲熟女少妇一区二区| 亚洲人成电影网站国产精品| 亚洲欧美在线x视频| 国产亚洲精彩视频| 亚洲国产一区视频| 亚洲国产精品综合久久一线| 久久国产成人亚洲精品影院| 亚洲情综合五月天| 亚洲成AV人片在线观看ww| 亚洲AV无码一区二区乱孑伦AS| 久久精品亚洲视频| 久久亚洲AV成人出白浆无码国产 | 国产精品无码亚洲精品2021| 日产国产精品亚洲系列| 亚洲精品网站在线观看不卡无广告 | 精品久久久久久亚洲综合网| 亚洲成AV人在线观看网址| 亚洲欧洲久久av| 亚洲乱码国产乱码精品精| 亚洲2022国产成人精品无码区| 亚洲久本草在线中文字幕| 亚洲国产综合第一精品小说| 最新国产精品亚洲| 免费观看亚洲人成网站| 国产亚洲精品精品国产亚洲综合| 国产亚洲精品自在久久| 91亚洲一区二区在线观看不卡 | 亚洲免费在线观看视频| 亚洲精品无码久久久久APP| 色窝窝亚洲AV网在线观看|