《高可用MySQL》節選 — 安全和二進位日誌

來源:互聯網
上載者:User

《高可用MySQL》P59

安全和二進位日誌

 

一般來說,一個有REPLICATION SLAVE許可權的使用者擁有讀取Master上發生的所有事件的許可權,因此為了確保安全應使該賬戶不被損害。這裡介紹一些預防措施的例子:

1 儘可能使從防火牆外無法登入該賬戶;

2 記錄所有試圖登入到該賬戶的日誌,並將日誌放置在一個單獨的安全伺服器上;

3 加密Master和Salve間所用的串連,例如MySQL的built-in SSL(Secure Sockets Layer)支援。

即使這個賬戶已經安全了,還存在一些沒必要放在二進位日誌中的資訊,因此首先不儲存在那裡也是有道理的。

較為常見的一個敏感資訊就是密碼。當執行改變伺服器上的表的語句,並且它包含訪問這個表所必須的密碼的時候,包含密碼的事件會被寫入二進位日誌。

一個典型的例子是:

UPDATE employee SET pass = PASSWORD('foobar') WHERE email = 'mats@example.com';

如果複製是正確的,最好重寫這個沒有密碼的語句。可以通過以下方法實現:計算和儲存雜湊密碼到使用者定義變數,然後在運算式中使用它:

SET @password = PASSWORD('foobar');UPDATE employee SET pass = @password WHERE email = 'mats@example.com';

由於SET語句沒有被複製,原來的密碼將不會儲存在二進位日誌中,而僅在執行該語句的時候儲存在伺服器的記憶體中。

只要儲存password hash到表中,而不需要純文字密碼,這種方法行之有效。如果原始密碼是直接儲存在表中的,就有沒有辦法阻止密碼在二進位日誌中結束。但儲存雜湊密碼在任何情況下都是一個標準的好做法,可以防止有人通過學習密碼將未經處理資料弄到手。

封裝串連為加密Master和Salve之間的串連提供了一些保護,但如果二進位日誌本身被攻破,加密串連也無能為力。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.