Kết nối database production từ máy local với các GUI tool (MySQLWorkBench, Robomongo…)

Thông thường, để đảm bảo tính bảo mật cho production database, các database server sẽ “bế quan toả cảng”, không giao thiệp với bên ngoài bằng các biện pháp:

  • Chỉ cho phép bind từ localhost hoặc app server
  • Bật tường lửa và khoá cổng db server lại, không cho truy cập từ bên ngoài
  • Nếu dùng load balancing, replication hoặc sharding thì chỉ cho phép các IP cụ thể đó truy cập vào
  • Đặt mật khẩu cho server

Để truy cập vào db, ta thường phải ssh lên server, sau đó login vào db server và thao tác hoàn toàn bằng lệnh, rất nhiều bất tiện, phiền toái, đặc biệt là khi làm việc với nhiều dữ liệu.

Bài viết này, mình sẽ nói về cách truy cập bằng GUI từ máy local, nhưng vẫn tuân thủ những biện pháp an toàn trên kia.

Nguyên lý

Các GUI đa số đều cho phép kết nối thông qua giao thức ssh, sau đó mới kết nối vào db server bằng localhost trên đó, các thao tác sau đó đều được thực hiện phía trên server, qua ssh.

Tất nhiên, điều kiện tiên quyết là bạn phải login được vào server thông qua giao thức ssh 😛

Mình sẽ demo với mongodbMySQL, các DBMS khác tương tự.

Mongodb

Với mongodb thì mình hay dùng robomongo.

Mở robomongo lên, chọn File -> Connect hộp thoại Mongodb Connections sẽ hiện ra, liệt kê các kết nối mà bạn đang có.

Click vào link Create, hộp thoại Connection Settings sẽ hiện ra để bạn nhập các thông số kết nối.

Trên hộp thoại Connection Settings, tab Connection, bạn điền vào:

  • tên để sau này dễ nhận biết mà kết nối nhanh
  • Address: địa chỉ mà bạn bind server, nếu bind local thì điền localhost hoặc 127.0.0.1 đều được
  • Port: cổng mà db server của bạn lắng nghe, mặc định thì mongodb nghe ở cổng 27017

Tiếp sang tab ssh, tick chọn check box Use ssh tunel, và điền vào:

  • SSH address: IP và port của server bạn, khi dùng để kết nối ssh
  • SSH user name: tên đăng nhập ssh
  • SSH auth method: chọn Private key cho bảo mật, để hiểu thêm về bảo mật bằng mật khẩu và private key, mời bạn đọc thêm bài viết bảo mật VPS của bạn @Hieu.VO
  • Private key: bạn trỏ đến file ssh private key
  • Passphrase: mật khẩu của ssh key của bạn (nếu có), không thì bỏ trống

Vd: mình muốn ssh vào server của appconus, bình thường mình sẽ dùng lệnh:

Thì mình sẽ có cấu hình như sau:

Bạn có thể bấm Test để kiếm tra xem các thông số đã chính xác chưa. Rồi, lưu. Bạn sẽ thấy kết nối mới này sẽ được liệt kê ở hộp thoại Connection Settings.

Muốn kết nối chỉ việc đúp chuột vào kết nối => Xong.

Từ đây bạn có thể thao tác với db một cách thoải mái hơn, và an tâm vẫn đảm bảo vấn đề bảo mật như khi bạn tự ssh vào server.

MySQL

MySQL thì chúng ta sẽ nghĩ ngay đến cái tên nổi tiếng: MySQL Workbench.

Chọn menu Database -> Connect to Database, hộp thoại Connect to Database sẽ hiện ra.

  • Connection method: Chọn Standard TCP/IP over SSH
  • Các thông số khác tương tự như mongodb, nó cùng 1 nguyên lý ấy mà, bạn nhìn hình sẽ rõ hơn.

Đến đây thì cuộc sống lập trình tươi đẹp hơn 1 chút rồi 😛

Happy coding!

Lập trình và hơn thế nữa

Spread the love
  •  
  •  
  •  
  •  
  •  

Leave a Reply

Be the First to Comment!

Notify of
avatar