上一篇
场景再现:凌晨2点,你正喝着第三杯咖啡☕,突然收到报警——生产数据库磁盘爆满!需要立即切换账号清理日志,但...那个sudo -u postgres
的语法怎么拼来着?别慌,这篇指南就是你的深夜救星✨
1️⃣ 安全隔离:用普通账号操作避免误删(比如root
删库跑路警告🚨)
2️⃣ 权限控制:不同业务用不同账号(如readonly_user
只能查询📊)
3️⃣ 审计需求:精准追踪谁操作了数据(甩锅时能拿出证据💼)
-- 查看当前用户 SELECT current_user; -- 切换用户(需要权限) SET ROLE 'report_user'; -- 临时切换(执行完自动还原) SET SESSION AUTHORIZATION 'admin_user'; -- 命令行切换 psql -U postgres -d mydb # 用postgres账号连接
-- 查看权限 SHOW GRANTS FOR 'dev_user'@'%'; -- 切换用户(连接时指定) mysql -u root -p # 经典root登录方式 -- 运行时切换用户(需RELOAD权限) CHANGE USER TO 'backup_user'@'localhost';
-- 经典conn命令 CONN sys/password@ORCL AS SYSDBA; -- 代理切换(11g+特性) ALTER USER scott GRANT CONNECT THROUGH hr;
// 认证切换 db.auth("admin", "password123"); // 查看角色 db.getUser("readWriteUser");
密码泄露风险:
# 危险示范(会记录到history) mysql -u root -p123456
权限回收原则:
REVOKE DELETE ON *.* FROM 'temp_user';
sudo的妙用:
# 无需知道postgres密码即可切换 sudo -u postgres psql
情景:临时给实习生只读权限
-- PostgreSQL示例 CREATE USER intern WITH PASSWORD 'Summer2025!'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO intern;
效果:实习生查询时看到的是这样👇
ERROR: permission denied for table salary_data
最后的小测验:当你在MySQL看到ERROR 1045 (28000)
时,说明什么?
(答案:账号密码错误或权限不足⛔)
掌握这些技巧,下次处理紧急状况时你就能淡定如DBA老司机🚀啦!记得定期复习权限矩阵哦~
本文由 诸勋 于2025-08-05发表在【云服务器提供商】,文中图片由(诸勋)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/539637.html
发表评论