Redis是否使用用户名进行身份验证?

时间:2017-10-04 16:07:13

标签: database redis

我在我的环境中设置了Redis,并且只看到了一个通过密码授权的部分。有没有办法设置用户名?或者它只通过密码验证?

2 个答案:

答案 0 :(得分:2)

只能通过密码对Redis进行身份验证。

请记住,密码(像其他所有密码一样)是未经加密的通过网络发送的,因此任何可以监听网络流量的人都非常容易进行窃听,因此使用密码不足以保护暴露的Redis在网络上:

  

认证层的目标是可选地提供冗余层。如果防火墙或为保护Redis免受外部攻击者而实施的任何其他系统失败,则外部客户端在不知道身份验证密码的情况下仍将无法访问Redis实例。

要通过网络安全地使用Redis,可以使用网络级隧道或SSL / TLS,请参见:

答案 1 :(得分:0)

在 Redis 6 上有 ACL。这些有一个用户名。查看https://redis.io/topics/acl

要使用用户名访问,请在 redis.conf 文件中添加以下内容:

user bert allcommands allkeys on >abc123
requirepass foobar

'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"

然后从 redis-cli 以用户 'bert' 登录:

redis-cli --user bert --pass abc123

目前文档中还不清楚您如何通过 NodeJS 这样的程序来做到这一点。

相关问题