OceanBase 安全管理

2021-06-29 18:05 更新

安全管理對數(shù)據(jù)庫至關重要,OceanBase 有專門的安全管理策略用來保證數(shù)據(jù)庫數(shù)據(jù)安全和資源安全。OceanBase 數(shù)據(jù)庫的安全管理策略主要包括資源隔離和權限控制:通過資源隔離限制可以訪問到的數(shù)據(jù),隔離保證資源安全;對于共享數(shù)據(jù),通過權限設置訪問權限,從而保證數(shù)據(jù)安全。

賬戶權限管理

您可在 RAM 訪問控制中,設置用戶權限。

  1. 登錄 RAM 訪問控制臺后,單擊左側導航欄的 權限策略管理,單擊 創(chuàng)建權限策略。 OceanBase創(chuàng)建權限策略

  2. 在 新建自定義權限策略 頁面,填寫 策略名稱,選擇 腳本配置,為子賬號創(chuàng)建權限策略。 OceanBase新建自定義權限設置

  3. 創(chuàng)建完成后,單擊左側導航欄 用戶,搜索需要增加權限的用戶名稱。

  4. 進入用戶詳情頁面后,單擊 權限管理。

  5. 在 個人權限 頁簽下,單擊 添加權限。

  6. 在右側彈出框中,單擊 自定義策略,選擇剛剛創(chuàng)建的權限策略,單擊 確定

租戶權限管理

  • 系統(tǒng)租戶和普通租戶

    OceanBase 支持多租戶架構,租戶是數(shù)據(jù)庫對象管理和資源管理的基礎,即租戶即是各類數(shù)據(jù)庫對象的容器,又是資源(CPU、Memory、IO 等)的容器。

    OceanBase新建自定義權限設置

    多租戶架構優(yōu)勢如下:

    • 在數(shù)據(jù)安全方面,不允許跨租戶的數(shù)據(jù)訪問,確保用戶的數(shù)據(jù)資產沒有泄露的風險。

    • 在資源使用方面,租戶獨占其資源配額。通過多租戶架構,將數(shù)據(jù)和資源分離,這樣就保證了數(shù)據(jù)資源在不同租戶之間的安全性。

    OceanBase 系統(tǒng)中包含兩大類租戶:系統(tǒng)租戶和普通租戶。系統(tǒng)租戶是系統(tǒng)內置的,用于保存 OceanBase 正常運行的一些資源,進行集群管理操作和存儲系統(tǒng)表。只有系統(tǒng)租戶下的 root 用戶能夠增加和刪除普通租戶,修改系統(tǒng)配置項和進行每日合并等一些重要功能操作。

  • 租戶管理

    在 OceanBase 中,不同租戶之間的數(shù)據(jù)對象是完全隔離的,對象名字空間的最頂層就是租戶。OceanBase 的租戶權限管理有如下特點:

    • 任何租戶(不論是系統(tǒng)租戶還是普通租戶)下的用戶不能跨租戶訪問其他普通租戶下的用戶數(shù)據(jù)。

    • 不支持跨租戶對用戶進行授權。例如:A 租戶下的管理員用戶 u1,不能將 A 租戶下的表 t1 的讀寫權限授予 B 租戶下的任何用戶。

    • 只有系統(tǒng)租戶下的管理員用戶才有集群管理權限,執(zhí)行系統(tǒng)管理操作,如創(chuàng)建/刪除普通租戶、設置系統(tǒng)配置參數(shù)、開啟每日合并操作。

    • 普通租戶下的用戶及權限和 MySQL 實例類似,既有具備租戶內管理員權限的特權用戶,也有普通用戶。權限的授予及回收也和單個 MySQL 實例相同。

    • 在跨租戶數(shù)據(jù)訪問方面有一個小小的例外,那就是普通租戶下的用戶,如果他具備訪問系統(tǒng)視圖的權限,實際上他是可以訪問到系統(tǒng)租戶下的系統(tǒng)表數(shù)據(jù)的,因為所有元信息都存放在系統(tǒng)租戶下的系統(tǒng)表里。

用戶權限管理

數(shù)據(jù)庫用戶權限管理包括新建用戶、刪除用戶、修改密碼、修改用戶名、鎖定用戶、用戶授權和撤銷授權等。OceanBase 中用戶分為兩類:系統(tǒng)租戶下的用戶,一般租戶下的用戶。創(chuàng)建用戶時,如果 Session 當前租戶為系統(tǒng)租戶,則新建的用戶為系統(tǒng)租戶用戶;反之為一般租戶下的用戶。

用戶名稱在租戶內是唯一的,不同租戶下的用戶可以同名。用戶名@租戶名 在系統(tǒng)全局唯一。為區(qū)別系統(tǒng)租戶和一般租戶下的用戶,建議對系統(tǒng)租戶下的用戶名稱使用特定前綴。系統(tǒng)租戶和普通租戶都有一個內置用戶 root,系統(tǒng)租戶的 root 為系統(tǒng)管理員,普通租戶的 root 為租戶管理員。

一般租戶下的用戶只能擁有該租戶下對象的訪問權限,權限設計和 MySQL 兼容;系統(tǒng)租戶下的用戶可以被授予跨租戶的對象訪問權限。當前系統(tǒng)租戶下的用戶不允許訪問一般租戶下的用戶表數(shù)據(jù)。

用戶在登錄 OceanBase 系統(tǒng)時需指定唯一的租戶名。對于系統(tǒng)租戶下的用戶,在登錄后,可以切換當前訪問的租戶;對于一般租戶下的用戶,不能切換到其他租戶。 對于權限,可以分成以下幾個層級:

  • 全局層級:適用于所有的數(shù)據(jù)庫。使用 GRANT ALL ON *.* 授予全局權限。

  • 數(shù)據(jù)庫層級:適用于一個給定數(shù)據(jù)庫中的所有目標。使用 GRANT ALL ON db_name.* 授予數(shù)據(jù)庫權限。

  • 表層級:表權限適用于一個給定表中的所有列。使用 GRANT ALL ON db_name.tbl_name 授予表權限。

權限信息如下:

權限

說明

ALL PRIVILEGES

除 GRANT OPTION 以外所有權限

ALTER

ALTER TABLE 的權限

CREATE

CREATE TABLE 的權限

CREATE USER

CREATE USER,DROP USER,RENAME USER 和 REVOKE ALL PRIVILEGES 的權限

CREATE TABLEGROUP

全局 CREATE TABLEGROUP 的權限

DELETE

DELETE 的權限

DROP

DROP 的權限

GRANT OPTION

GRANT OPTION 的權限

INSERT

INSERT 的權限

SELECT

SELECT 的權限

UPDATE

UPDATE 的權限

SUPER

SET GLOBAL 修改全局系統(tǒng)參數(shù)的權限

SHOW DATABASES

全局 SHOW DATABASES 的權限

INDEX

CREATE INDEX, DROP INDEX 的權限

CREATE VIEW

創(chuàng)建、刪除視圖的權限

SHOW VIEW

SHOW CREATE VIEW 權限

總結

OceanBase 中,每個租戶對應一個 MySQL 實例,OceanBase 的用戶權限管理做到了和 MySQL 的兼容,操作和 MySQL 都是一樣的。在用戶的基礎上,OceanBase 增加了多租戶機制,因此也引入了租戶權限管理,規(guī)定了不同租戶之間數(shù)據(jù)和資源的使用權限。通過租戶權限管理和用戶權限管理保證了 OceanBase 的安全。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號