在 Debian 上,lsnrctl 是 Oracle Database Listener 的控制工具。给监听器设置密码(也就是 Listener Password),目的是防止未授权用户随意停止或操作监听器。
⚠️ 注意:从 Oracle 10g 以后,监听器默认使用 本地操作系统认证(Local OS Authentication),只有
oracle用户能管理监听器。如果你只是想限制远程操作,设置密码仍然是可行的。
su - oracle
lsnrctl
LSNRCTL> change_password
Old password: (没有就直接回车)
New password: 你的密码
Reenter new password: 你的密码
LSNRCTL> save_config
✅ 这样密码就写入了 listener.ora
重新进入 lsnrctl:
lsnrctl
执行:
LSNRCTL> status
如果提示:
TNS-01169: The listener has not recognized the password
说明密码已生效。
LSNRCTL> set password
Password: 你的密码
然后再执行:
LSNRCTL> stop
LSNRCTL> start
设置后,你会在 $ORACLE_HOME/network/admin/listener.ora 看到类似:
PASSWORDS_LISTENER = (password_hash)
⚠️ 密码是 加密哈希,不可逆向
/opt/oracle 或 /u01oracle 用户 无需密码save_config 报错权限不足,检查 listener.ora 权限✅ 更安全的做法是:
oracle 用户本地管理如果你愿意,可以告诉我:
我可以给你最合适的安全方案。