總網頁瀏覽量

2013年1月17日 星期四

MSSQL帳戶存取權限設定


設定權限有三個部分
第一部分設定使用者能否連線到DB server
可連線到DB server不代表可以存取資料庫
好比路人可以去某公司的大廳,但不能去任何一個部門
操作方法:打開sql server在伺服器(第一層)的"安全性"→登入→右健新增登入→一般→點搜尋,新增使用者帳號或某個群組。
(新增的帳號來源是由OS的控制台帳戶管理或者電腦管理裡面的帳號清單。)


第二部分設定使用者能否連到server裡面的database。
這階段設定好不代表使用者可以針對database作交易處理(select update ....等等),好比學生參觀企業可以進去企業某部門,但是不能動用部門裡的電腦。
操作方法:去某個資料庫(也就是想開放使用者連線的DB)底下的"安全性"→使用者→右健新增使用者(打上輸入名稱、設定登入名稱,其餘不用做啥)。


第三部分:設定rule,讓使用者可以針對資料庫進行交易指令,
做法:腳色→新增資料庫角色→打上角色名稱以及擁有者(我打detective,dbo)
→將conan加入→確定。
接著在detective右健→屬性→安全性實體→搜尋→下列類型所有物件→結構描述打勾→選取名稱為dbo的結構描述(我選錯結構描述,選到db_accessadmin的結構描述,難怪conan一直無法select)→權限那欄有很多項目分別表示針對資料庫各種操作,我在這裡把"選取"的"授與"打勾。如此一來conan可以針對此資料庫下select指令

用指令更改權限
語法是:grant/revoke select/update/alter/delete/drop on 物件 to user/group

以上當然可以在圖形化操作完之後叫MSSQL產生指令


ps:關於gusest目前還搞不清楚
伺服器底下"安全性"的"登入"項目沒有guest
但是各個資料庫底下安全性的登入卻有guest。
且啟動guest的權限好像只能用指令去啟動。
左上角有個下拉選單選取資料庫後
下grant connect to guest指令
卸除也是如此
revoke connect from guest

在M$官網找了一下寫道:
雖然您不能卸除 guest 使用者,但是可以在 master、tempdb 或 msdb 以外的任何資料庫中執行 REVOKE CONNECT FROM GUEST 來撤銷其 CONNECT 權限,以停用 guest 使用者。

沒有留言:

張貼留言