我已经在我的环境中设置了 Redis,并且只看到了通过密码授权的部分。有没有办法设置用户名?还是仅通过密码进行身份验证?
Ber*_*rtC 19
Redis 6 上有 ACL。这些都有一个用户名。查看https://redis.io/topics/acl
要使用用户名进行访问,请在 redis.conf 文件中添加以下内容:
user bert allcommands allkeys on >abc123
requirepass foobar
Run Code Online (Sandbox Code Playgroud)
'user' 命令添加用户,而 requirepass 命令仅设置用户 'default' 的密码。
要显示它在 redis-cli 中的外观:
Redis# redis-cli -a foobar
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> ACL LIST
1) "user bert on #6ca13d52ca70c883e0f0bb101e425a89e8624de51db2d2392593af6a84118090 ~* &* +@all"
2) "user default on #c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2 ~* &* +@all"
Run Code Online (Sandbox Code Playgroud)
并从 redis-cli 以用户“bert”登录:
redis-cli --user bert --pass abc123
Run Code Online (Sandbox Code Playgroud)
目前,从文档中尚不清楚如何使用 NodeJS 等程序来执行此操作。
Redis 只能通过密码进行身份验证。
请记住,密码(与其他所有内容一样)是通过未加密的网络发送的,因此任何可以侦听网络流量的人都很容易窃听,因此使用密码不足以保护暴露在网络上的 Redis :
认证层的目标是可选地提供一层冗余。如果为保护 Redis 免受外部攻击而实施的防火墙或任何其他系统失败,外部客户端仍将无法在不知道身份验证密码的情况下访问 Redis 实例。
要通过网络安全地使用 Redis,您可以使用网络级隧道或 SSL/TLS,请参阅: