用户管理

目录

功能概述

提供完整的用户生命周期管理,包括创建、权限分配、密码修改和删除操作。

操作步骤

CLI
Web Console
  1. 创建用户密码

    kubectl -n ${namespace} create secret generic mgr-${instance_name}-${username}-password \
    --from-literal=host="%" \
    --from-literal=user=${username} \
    --from-literal=password=${password}
    INFO
    • ${instance_name} 是要创建用户的目标 MySQL-MGR 实例名称
    • ${namespace} 是实例所属的命名空间
    • ${username} 是要创建的用户名
    • ${password} 是要设置的密码
  2. 创建用户管理 CR

    kubectl apply -n ${namespace} -f - <<EOF
    apiVersion: middleware.alauda.io/v1
    kind: MysqlUser
    metadata:
      labels:
        mgr/cluster: mgr
        mysql/arch: mgr
      name: ${name}
      namespace: ${namespace}
    spec:
      host: '%'
      mysql: ${instance_name}
      privileges:
        - grants:
            - SELECT
            - INSERT
            - UPDATE
            - DELETE
            - CREATE
            - DROP
            - REFERENCES
            - INDEX
            - ALTER
            - CREATE TEMPORARY TABLES
            - LOCK TABLES
            - CREATE VIEW
            - SHOW VIEW
            - CREATE ROUTINE
            - ALTER ROUTINE
            - EXECUTE
            - EVENT
            - TRIGGER
          targets:
            - ${database}.*
      secretName: ${secret_name}
      user: ${username}
    EOF
    INFO
    • ${instance_name} 是要创建用户的目标 MySQL-MGR 实例名称
    • ${namespace} 是实例所属的命名空间
    • ${username} 是要创建的用户名
    • ${secret_name} 是用于携带密码的 secret 名称
    • ${database} 是要创建用户的目标数据库名称
  3. 使用对应用户登录 MySQL

  4. 查看用户权限,以下以用户 dev 为例:

    SHOW GRANTS;

    结果显示:

    +----------------------------------------------+
    | Grants for dev@%                             |
    +----------------------------------------------+
    | GRANT USAGE ON *.* TO `dev`@`%`              |
    | GRANT ALL PRIVILEGES ON `dev`.* TO `dev`@`%` |
    +----------------------------------------------+