04-数据库密码
9.1.2 数据库密码
除此之外,还可以通过配置文件中的 requirepass
参数为Redis设置一个密码。例如:
requirepass TAFK(@~!ji^XALQ(sYh5xIwTn5D$s7JF
客户端每次连接到Redis时都需要发送密码,否则Redis会拒绝执行客户端发来的命令。例如:
redis> GET foo
(error) ERR operation not permitted
发送密码需要使用 AUTH
命令,就像这样:
redis> AUTH TAFK(@~!ji^XALQ(sYh5xIwTn5D$s7JF
OK
之后就可以执行任何命令了:
redis> GET foo
"1"
由于Redis的性能极高,并且输入错误密码后Redis并不会进行主动延迟(考虑到Redis的单线程模型),所以攻击者可以通过穷举法破解Redis的密码(1秒内能够尝试十几万个密码),因此在设置时一定要选择复杂的密码。
提示
配置 Redis 复制的时候如果主数据库设置了密码,需要在从数据库的配置文件中通过
masterauth
参数设置主数据库的密码,以使从数据库连接主数据库时自动使用AUTH
命令认证。