我有興趣禁止從服務器以外的任何站點對我的PostgreSQL服務器進行pgAdmin訪問。是否可以使用pg_hba.conf來做到這一點? PostgreSQL服務器仍應允許從其他工作站訪問我的應用程序的服務器。對PostgreSQL的pgAdmin訪問控制
1
A
回答
1
不,這是不可能的。這也不明智,因爲客戶端(訪問模式)不是問題,而是你在連接上做了什麼。
如果用戶設法欺騙您的應用程序通過SQL注入或任何其他方式運行任意SQL,您將回到相同的位置。
相反,設置你的應用使用受限用戶角色:
- 不是超級
- 不擁有它採用
- 表只是最小權限
GRANT
版吧它需要
並且最好還添加警衛,如觸發器以保持數據庫中的數據一致性。這有助於減輕如果某人從應用程序提取數據庫憑證並直接通過SQL客戶端使用它們可能造成的損害。
您也可以使它更難有人與你的應用程序的二進制文件等,以提取憑證,並用它們來通過直接連接到Postgres的:如果你使用一個單一的數據庫角色
- 使用
md5
認證 - (a)不這樣做,或者(b)在配置中某個不明顯的地方存儲數據庫密碼的模糊副本,最好是根據用戶的本地憑證進行加密
- 使用
sslmode=verify-full
和a服務器證書 - 嵌入在你的應用程序客戶端證書,並要求其按順序呈現爲連接到服務器被允許(見client certificates
真的,不過,如果你不能信任你的用途不被主動惡意並運行DELETE FROM customer;
等...您需要中間件來防範SQL連接並應用更多限制。速率限制訪問,禁止批量更新等等。
+0
謝謝大家的回答。 – user2398654
相關問題
- 1. 訪問遠程的PostgreSQL與pgAdmin的
- 2. PostgreSQL的訪問控制
- 3. 對象的訪問控制
- 4. postgresql/pgAdmin - 服務器不聽問題
- 5. 控制訪問
- 6. 訪問控制
- 7. 訪問控制
- 8. 控制對Microsoft Azure帳戶的訪問
- 9. 控制對通信層的訪問
- 10. 控制對JAR中類的訪問
- 11. 對Web服務的訪問控制
- 12. 控制對Web窗體的訪問
- 13. ZABBIX控制對Wi-Fi的訪問?
- 14. 訪問對象的JavaScript控制檯
- 15. 控制檯訪問paper.js對象
- 16. 對象存儲訪問控制API
- 17. 訪問控制對組合框
- 18. 訪問控制對Web服務
- 19. Java - 用戶對象訪問控制
- 20. 從控制器訪問nib/xib對象
- 21. 從對象訪問控制器
- 22. Nexus訪問控制
- 23. Glassfish訪問控制
- 24. 訪問控制從
- 25. 訪問,控制,#NAME
- 26. 訪問控制DataTemplete
- 27. Symfony2 - 訪問控制
- 28. 訪問控制器
- 29. Cassandra訪問控制
您不能根據正在使用的SQL客戶端應用程序阻止訪問。 –
雖然你可以阻止從服務器以外的任何站點通過hba_file進行訪問,不管客戶端是 –
也許更適合於[dba.se] – Iceman