請停用資料庫的guest使用者

昨天在Tech Summit 2016聽百敬老師一場Session中提到每一個DB中guest帳號的安全性問題。以前從沒在注意guest這一個預設User,今天上網查了一下資料才發現原來得好好留意啊

我們先建立一個資料庫gustDB

 

我們展開該資料庫可以發現guest這一個User預設狀態是Disable

 

這時我們啟用guest,注意語法如下是 Grant Connect To [guest]

 

下圖中可以看見guest圖示已是啟用狀態

 

此時我們如果將guest加入db_owner的角色裡會發生甚麼事呢?

 

我剛剛將gustDB資料庫中的guest加入到db_owner了。接下來我建立一個Login是testUsers,注意我並沒有將該Login加入gustDB資料庫中。此時我用Execute as Login模擬testUsers身分後去gustDB資料庫建立一個資料表tb1卻是可以成功的(如下圖左邊紅色圈選處)

經過上面簡單測試後我們可以發現所有的登入預設就是各個資料庫的guest使用者,因此萬一您不小心開啟某資料庫的guest,那等於是授權給所有登入都可以連線到該資料庫。如果此時又授權不當,那可就是災難一場。

我是ROCK

rockchang@mails.fju.edu.tw