ElasticSearch全文搜索引擎,如何管理用户名密码?
发布于 作者:苏南大叔 来源:程序如此灵动~
为了管理大模型里面的数据,苏南大叔准备再次启用ElasticSearch这款神器。所以,在win10环境下,安装最新版的ElasticSearch@8.17.1软件。所以,对这款神器也有了新的认识。本文主要讲述对ElasticSearch的用户名密码进行管理的方式。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10,ElasticSearch@8.17.1。本文涉及的命令行是:bin/elasticsearch-users.bat。
最新版 ElasticSearch
安装最新版ElasticSearch,主要参考苏南大叔的这篇文章:
无需实现安装jdk,在下面的地址里,直接下载ElasticSearch安装包。
- https://www.elastic.co/cn/downloads/elasticsearch
- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.1-windows-x86_64.zip
由于elastic search自颁发的证书,实际使用中存在着各种各样无法解决的问题。所以,最好的配置方案是:
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: false也就是说:不使用奇怪的https://localhost:9200/,而是使用http://localhost:9200/。
然后执行\bin\elasticsearch.bat,启动elasticsearch。
自动配置用户名失败
执行\bin\elasticsearch.bat,启动elasticsearch。首次执行的时候,可能会到如下提示信息:
✅ Elasticsearch security features have been automatically configured!
✅ Authentication is enabled and cluster connections are encrypted.
❌ Unable to auto-generate the password for the elastic built-in superuser.注意到这里面的自动创建用户名密码失败的字样了么?这就是本文写作的主要原因。
Unable to auto-generate the password for the elastic built-in superuser.superuser是权限组名,超级管理员。先来解决第一个拦路虎问题,本来应该要自动配置用户名密码的,配置权限组应为superuser。
可能是版本发布的有问题,这个版本的elasticsearch出现了很多用户名密码相关的问题。重新下载安装之后,各种奇怪的问题得以解决。xpack
ElasticSearch的用户名密码相关的功能,都是和一个xpack的功能紧密相关的。在ElasticSearch中,xpack就是权限验证的代名词。
特殊说明的是:使用elasticsearch-users.bat添加和修改用户的时候,并不需要启动ElasticSearch。

列出所有用户
列出所有用户:
elasticsearch-users list添加删除用户
添加一个新的用户:
elasticsearch-users useradd elastic -p elastic -r superuserelasticsearch-users useradd elastic1 -p elastic1 -r superusersuperuser是最高权限的意思。如果你添加的不是一个最高权限的用户,注意修改superuser字样。elastic现在是保留字了,不能用做用户名。会得到提示信息:Username [elastic] is reserved and may not be used。
删除一个新用户:
elasticsearch-users userdel elastic1修改密码
[1] 推荐方案,elasticsearch-users passwd交互式输入新密码即可。elastic1是用户名。
elasticsearch-users passwd elastic1[2] 备用方案,elasticsearch-reset-password命令,也可以实现类似需求。
elasticsearch-reset-password -u elastic1 -i参考文章:
验证用户名密码
保证配置config/elasticsearch.yml里面开启xpack认证,例如:
xpack.security.enabled: true如果关闭了https,就访问 http://localhost:9200/,否则访问 https://localhost:9200/ 。就会弹出用户名密码对话框,即可验证。
xpack.security.http.ssl:
enabled: false
结语
更多苏南大叔的elasticsearch相关经验文章,请点击下面的链接: