用户管理

目录

功能概述

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

操作步骤

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} 是要设置的密码
  1. 创建用户管理 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} 是要创建用户的目标数据库名称
  1. 使用对应用户登录 MySQL
  2. 检查用户权限,以用户 dev 为例:
SHOW GRANTS;

结果显示:

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