用户¶
集群中的MySQL用户帐户可以分为两组:
- 应用程序级用户:非特权用户帐户,
- 系统级用户:自动化集群部署和管理任务所需的帐户,例如Percona XtraDB集群运行状况检查或ProxySQL集成。雷竞技下载官网
由于这两组用户帐户的用途不同,因此在下面几节中分别考虑它们。
无特权的用户¶
默认情况下没有创建非特权(一般用途)用户帐户。如果您需要一般用途的用户,请运行以下命令:
$kubectl运行-——rm雷竞技下载官网percona-client——图片=雷竞技下载官网percona: 8.0——重启=从来没有--mysql-hcluster1-pxc-uroot-proot_password mysql >格兰特所有特权在database1。*来“user1”@“%”确认通过“密码”;
请注意
MySQL密码不应超过32个字符,因为MySQL 5.7.5引入了复制特定限制.
验证用户是否已成功创建。如果成功,下面的命令将让您成功登录到MySQL shell通过ProxySQL:
$kubectl运行-——rm雷竞技下载官网percona-client——图片=雷竞技下载官网percona: 8.0——重启=从来没有--bashil p雷竞技下载官网ercona-client: / $mysql- hcluster1-proxysql-uuser1-ppassword1 mysql >选择*从database1.table1限制1;
您还可以尝试执行任何简单的SQL语句,以确保已成功授予权限。
系统用户¶
为了自动化集群组件的部署和管理,操作员需要系统级的Percona XtraDB集群用户。雷竞技下载官网
这些用户的凭据存储为Kubernetes秘密对象。在Percona XtraDB集群启动之前,操作员需要Kubernetes机密。雷竞技下载官网它将使用现有的Secrets对象,或者使用随机生成的密码创建一个新的Secrets对象(如果不存在)。所需机密的名称(cluster1默认情况下)应在spec.secretsName选项部署/ cr.yaml配置文件。
系统用户的名称和用途如下表所示。
警告
这些用户不应该用于运行应用程序。
| 用户的目的 | 用户名 | 密码密钥 | 描述 |
|---|---|---|---|
| 管理 | 根 | 根 | 数据库管理用户,如果需要,应用程序可以使用 |
| ProxySQLAdmin | proxyadmin | proxyadmin | ProxySQL管理用户,可以用来添加通用的ProxySQL用户 |
| 备份 | xtrabackup | xtrabackup | 运行备份的用户 |
| 集群检查 | clustercheck | clustercheck | User在v1.12.0中已弃用,在下一个版本中不可用 |
| raybet雷竞技竞猜在线官网监控 | raybet雷竞技竞猜在线官网 | raybet雷竞技竞猜在线官网 | 用户用于内部监控目的,如活跃度/就绪raybet雷竞技竞猜在线官网度检查和PMM代理 |
| PMM服务器密码 | 应该设置通过吗运营商的选择 | pmmserver | 访问PMM服务器的密码.基于密码的授权方法自Operator 1.11.0以来已弃用.请改用基于令牌的授权 |
| 操作员管理 | 操作符 | 操作符 | 数据库管理用户,只能由操作员使用 |
| 复制 | 复制 | 复制 | 需要管理用户跨站点Percona 雷竞技下载官网XtraDB集群 |
YAML对象格式¶
这些用户的Secrets对象的默认名称是cluster1-secrets并且可以在集群的CR中设置spec.secretName去不同的地方。当你自己创建对象时,它应该匹配以下简单的格式:
apiVersion:v1种类:秘密元数据:名字:cluster1-secrets类型:不透明的stringData:根:root_passwordxtrabackup:backup_passwordraybet雷竞技竞猜在线官网:raybet雷竞技竞猜在线官网告诫书clustercheck:clustercheckpasswordproxyadmin:admin_password操作符:operatoradmin复制:repl_password
上面的示例与deploy/secrets中提供的内容相匹配。包含默认密码的Yaml。您不应该在生产环境中使用它们,但是它们的存在是为了帮助自动化测试或在开发环境中简单使用。
如你所见,因为我们使用stringData当创建Secrets对象时,每个键/值对的所有值都以用户方便的纯文本格式声明。但是生成的Secrets对象包含存储为数据-即base64编码的字符串。如果您想要更新任何字段,则需要将值编码为base64格式。要做到这一点,你可以跑步Echo -n "password" | base64——wrap=0(或只是Echo -n "password" | base64在Apple macOS的情况下)在您的本地shell中获取有效值。例如,将Admin用户的密码设置为new_password在cluster1-secrets对象可以通过以下命令实现:
$kubectl补丁秘密/ cluster1-secrets- p{“数据”:{“根”:“$ (回声- nnew_password|base64——包装=0)““}}”
$kubectl补丁秘密/ cluster1-secrets- p{“数据”:{“根”:“$ (回声- nnew_password|base64)““}}”
密码轮换策略和定时¶
当用户机密发生变化时,操作员创建必要的事务来更改密码。这个旋转几乎是立即发生的(延迟可能长达几秒钟),除了更改密码之外不需要采取任何操作。
请注意
请不要改变secretName在CR中的选项中,在secrets对象本身内部进行更改。
MySQL中标记系统用户¶
从MySQL 8.0.16开始,一个叫做帐户类别的新特性已经实现,它允许我们这样标记我们的系统用户。看到关于此特性的官方文档欲知详情。
发展模式¶
为了使开发和测试更容易,部署/ secrets.yamlsecrets文件包含Percona XtraDB集群系统用户的默认密码。雷竞技下载官网
这些开发模式证书来自部署/ secrets.yaml是:
| 秘密密钥 | 秘密值 |
|---|---|
| 根 | root_password |
| xtrabackup | backup_password |
| raybet雷竞技竞猜在线官网 | raybet雷竞技竞猜在线官网 |
| clustercheck | clustercheckpassword |
| proxyadmin | admin_password |
| 操作符 | operatoradmin |
| 复制 | repl_password |
警告
不要在生产环境中使用默认的Percona Xt雷竞技下载官网raDB集群用户密码!