云數據安全:SQL Azure數據保護
將數據遷移到云是當前討論的一大焦點。你可以在微軟的SQL Azure云數據庫中快速運行一個SQL Server實例,并為一個新的事務性應用程序或報表等數據分析應用迅速加載數據。
但是,將數據遷移到SQL Azure或Amazon的EC2需要非常小心。保護SQL Server云中數據是非常重要的,因為你不希望向不相干的人暴露客戶數據。
SQL Azure數據保護
Azure防火墻
首先要記得開始使用SQL Azure并不是向外界打開數據庫。默認情況下,SQL Azure的數據庫只能由微軟的內部Azure服務器訪問。為直接連接到SQL Azure的實例,配置你的SQL Azure防火墻以允許家中或辦公室的IP地址可以連接。在 Windows Azure的管理門戶進行登錄,在訂閱標簽下你應該可以看到你的SQL Azure訂閱,如1圖所示。
圖1顯示了Windows Azure的訂閱和防火墻規則
選擇服務器 “fz9fnjspok”,從訂閱菜單中可以看到防火墻規則按鈕如圖1中的右側。點擊它,你可以查看和編輯SQL Azure實例的防火墻規則。
正如圖2所示,此例中只有兩項防火墻規則。 最佳實踐認為你應使用盡可能少的防火墻規則。如果以后您有活動比如你在開會或度假需要添加規則,當完成后再刪除它。這將有助于防止未經授權的人闖入SQL Azure實例,停掉防火墻甚至很短的一段時間也是非常危險的。
圖2 SQL Azure這個實例上的防火墻規則。
對象級權限
除了保護您的SQL Azure實例的防火墻,你也會希望他們遵循最佳實踐,即授予用戶或者登錄者最少的權限以足夠完成他們的工作。目前的客戶端工具不容易做到這一點,當連接到 SQL Azure的數據庫,SQL Server Management Studio中沒有修改權限的用戶界面。SQL Azure不支持數據庫角色以及對象級權限,因此配置帳戶即應用程序使用者以盡可能少的最低權限來連接SQL Azure數據庫。這使用戶無法訪問他們并不需要的對象,而這正是你在一個傳統的SQL Server數據庫實例中所做的。
SQL注入和Azure
由Azure托管的應用程序正如一個傳統的Web應用程序容易受到SQL注入攻擊。這樣被返回到最終用戶瀏覽器的這些數據是不應該得到信任的,且所有數據庫調用應是設置成參數化的(而不是在應用程序內做字符串連接)。如果您使用一個類似對象關系映射(ORM)的實體框架(EF)來編寫應用程序代碼,ORM 將會為你參數化數據庫調用。不過,如果你不是使用ORM,應用程序對數據庫調用的參數化必須
【編輯推薦】