跳到主要内容

锁定和解锁用户

当一个用户暂时不需要访问数据库,管理员可锁定该用户,被锁定的用户无法登录 seekdb,管理员也可以解锁用户,重新激活被锁定的用户。

前提条件

锁定和解锁用户的操作一般由管理员完成,普通用户若需要执行锁定和解锁操作,必须具备全局 ALTER USER 权限。查看当前拥有权限的操作请参见 查看用户权限。如果您没有全局 ALTER USER 权限,请联系管理员为您添加,为用户添加权限的相关操作请参见 直接授予权限

操作步骤

  1. 登录到 seekdb。

  2. 执行以下语句,锁定或解锁用户。

    语句如下:

    ALTER USER user_name ACCOUNT LOCK | UNLOCK;

    示例:

    • 锁定用户

      ALTER USER demo ACCOUNT LOCK;
      mysql -h127.0.0.1 -uroot -P2881 -p******
      ERROR 3118 (HY000): User locked
    • 解锁用户

      ALTER USER demo ACCOUNT UNLOCK;
      Query OK, 0 rows affected (0.02 sec)
      mysql -h127.0.0.1 -uroot -P2881  -p******
      Welcome to the MariaDB monitor.  Commands end with ; or \g.
      Your MySQL connection id is 3221537922
      Server version: 5.7.25 OceanBase 4.3.5.3 SeekDB (r1.0.0.0) (Built 100000262025111218-5343637512e28c346f938516af53b7879d4d5974 Nov 12 2025)

      Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

      MySQL [(none)]>
  3. 执行锁定和解锁用户的操作后,管理员可以通过查询 DBA_OB_USERS 视图中的 is_locked 字段来确认用户的锁定状态。

    示例如下:

    SELECT user_name,is_locked FROM oceanbase.DBA_OB_USERS WHERE user_name='demo';
    +-----------+-----------+
    | user_name | is_locked |
    +-----------+-----------+
    | demo | NO |
    +-----------+-----------+
    1 row in set

    如果 is_locked 字段的值为 YES,则表示用户为锁定状态;如果 is_locked 字段的值为 NO,则表示用户为解锁状态。

相关文档

更多 ALTER USER 语句的信息请参见 ALTER USER