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 superuser
elasticsearch-users useradd elastic1 -p elastic1 -r superuser
superuser
是最高权限的意思。如果你添加的不是一个最高权限的用户,注意修改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
命令,也可以实现类似需求。
cd bin
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
相关经验文章,请点击下面的链接:


