如何设置集群中某个租户中的某个DataBase为只读模式禁止任何账号修改数据

MySQL:

ALTER SCHEMA crm READ ONLY = 1;

找到的Oceanbase语句

ALTER DATABASE database_name {READ ONLY | READ WRITE};

只读
ALTER DATABASE database_name READ ONLY

使用MySQL语法报错,使用Oceanbase语句指定OK但是无效,客户端重新连接也不行

9 个赞

SHOW VARIABLES like ‘version_comment’; ob的版本查一下 mysql语法未必兼容ob

2 个赞
Variable_name	Value
version_comment	OceanBase_CE 4.3.5.5 (r105010032025121323-524cb9015f8e905b5361bd410f99cf97c7df6557) (Built Dec 13 2025 23:37:29)
1 个赞

– 连接到目标租户

– obclient -h -P -u@ -p

ALTER DATABASE your_db_name READ ONLY;
– 方式 1:查看数据库状态

SHOW DATABASE STATUS LIKE ‘your_db_name’;

– 方式 2:查询系统视图(READ_ONLY = YES 表示只读)

SELECT DATABASE_NAME, READ_ONLY

FROM oceanbase.DBA_OB_DATABASES

WHERE DATABASE_NAME = ‘your_db_name’;

2 个赞

在 OceanBase 中,你可以通过执行 SQL 命令来设置数据库为只读模式。这通常涉及到修改数据库的属性。以下是一些可能的步骤:

  1. ‌登录到 OceanBase 的 SQL 客户端;
  2. ‌切换到目标租户,使用 ALTER SESSION SET tenant_name = your_tenant_name;命令切换到你的目标租户;
  3. ‌查询当前数据库的只读状态。可以使用如下 SQL 命令查看当前数据库的只读状态:
    SHOW VARIABLES LIKE read_only;
  4. ‌设置数据库为只读模式。如果数据库当前不是只读,可以使用以下命令将其设置为只读:
    SET GLOBAL read_only = ON;
    或者
    ALTER DATABASE your_database_name SET read_only = TRUE。
2 个赞

建个只读账号,把读写账号封了。

后续怎么处理的?

1 个赞

好的

666

还没实践