Phòng chống dịch "Óc Chó"

Dạo này team chúng tôi mới bị lây nhiễm bệnh dịch mới, chúng tôi gọi đó là dịch "óc chó". Bệnh dịch này không gây chết người, nhưng sẽ làm các thành viên khác trong team mệt mỏi thêm hoặc làm cho khách hàng chạy mất dép thôi 😅😅😅

Có phải bạn đang tò mò đó là bệnh gì đúng không nào? Đó là vào một ngày đẹp trời, thằng ku trong team rất hăng hái làm việc remote. Hắn code rất hăng say, hắn cần chỉnh sửa database, hắn đi drop table. Hắn vừa bấm Delete vừa ư ử hát bài Đêm Qua Em Mơ Gặp Bác Hồ. Đang xóa thì hắn bỗng kêu to "đậu xanh rau má, chị Kính Hồng1 ơi em xóa hết dữ liệu của chị rồi". Về phía chị Kính Hồng, chị kêu to "thằng óc chó" 😂. Từ đấy, hắn ta có tên là "Óc Chó".

Lại một ngày không đẹp trời khác, tôi đang hăng hái test code của người khác, thấy bug dễ xơi, tôi lao vào fix. Cũng sửa xong, tôi vào chạy lại thì thấy báo lỗi database. Rất nhanh trí, tôi đi xóa database, lần này tôi drop hẳn database chứ không chỉ drop table như "Óc Chó". Sao tôi thấy xóa database nhanh thế, vèo cái xong. Bỗng một tia sét ngang tai, tôi đang connect vào server test của Kính Hồng. Đứng bật dậy tôi bảo "Kính Hồng ơi, anh xóa đê bê của em rồi, có sao không nhỉ?" Tim đập chân run, chờ phản ứng của Kính Hồng. Nhưng lúc ấy có vẻ Kính Hồng đang đói nên máu chảy chậm, ẻm bảo "không sao anh ạ 😘". Sau một hồi giải thích thì mọi người trong team đều tái mặt lại, do chúng tôi sắp phải release mà bị xóa đê bê thì sao mà test kịp. Sự cố được giải quyết bằng cách restore đê bê được backup từ lúc trưa. Và không để anh em đặt tên, tôi tự gọi mình là "óc gà" 😖

Tối về tôi dằn vặt và xấu hổ lắm, tôi nghĩ ra cách để khắc phục bệnh "óc chó"

Cách 1: tôi sẽ backup dữ liệu vào một giờ cố định hàng ngày

Cách này thường áp dụng cho hệ thống chạy production, chứ server test của chúng tôi không cần dùng tới dao mổ trâu như vậy. Hơn nữa, sau khi bị xóa rồi, có restore lại cũng không còn nguyên vẹn được như trước, cực chẳng đã mới phải restore thôi.

Cách 2: tôi tạo ra tài khoản MySQL mới, không có quyền drop table và drop database

Cách này khá là dễ áp dụng. Tôi tạo ra tài khoản full quyền để config vào trong code. Tạo một tài khoản khác không có quyền xóa để cho anh em trong team dùng. Vậy là giải quyết được bệnh "óc chó".

Ví dụ tạo tài khoản full quyền:

mysql> CREATE USER 'super_user'@'localhost' IDENTIFIED BY 'password';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'super_user'@'localhost';

mysql> FLUSH PRIVILEGES;

Ví dụ tạo tài khoản ít quyền:

mysql> CREATE USER 'oc_cho'@'localhost' IDENTIFIED BY 'password';

mysql> GRANT CREATE, DELETE, INSERT, SELECT, UPDATE ON *.* TO 'oc_cho'@'localhost';

mysql> FLUSH PRIVILEGES;


1 Tên của bạn tester trong team chúng tôi

Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Xe buýt và rau muống

Học làm thơ cho ngày đặc biệt