資料庫裡的資料讀取是可以進行許可權設定的,前面一直在用超級管理員(sa)的許可權訪問資料庫。事實上,在SQL Server資料庫裡,一個使用者要訪問資料庫中的物件,必須經過三道認證,而這裡的物件則包括前文中講到的表、檢視、儲存過程等等。
安全管理
SQL Server資料庫中的許可權認證,類似於現實生活中的小區管理,能否進入小區是第一道身份確認,初步判斷為小區業主;進入小區後,到底入住哪一棟樓就是第二道身份確認,需要刷門禁卡才能進入;進入樓道門後,每棟樓都有很多住戶,到底是第幾層的第幾戶,就是第三道身份確認了。
只有拿鑰匙真正開啟住戶門的那個人,才是真正的業主,是這個家裡的主人。這裡的小區入口、大樓單元門和住戶門就好比資料庫伺服器、資料庫和資料物件。
1、連線伺服器
第一重認證為登陸許可權,確定使用者是否具有訪問資料庫伺服器的連線權;作為身份認證,完成這一步,就相當於獲取進入小區的許可權。
2、訪問資料庫
第二重認證主要確定使用者是否有訪問資料庫的許可權,即是否為合法的資料庫使用者。在一個小區裡有很多個樓盤,同樣的在一個伺服器上也有很多個資料庫。這一步就是確定使用者能夠進入哪一棟樓,也就是可以操作哪一個資料庫。
3、資料物件的操作許可權
第三重認證是確定使用者對該資料物件的訪問許可權,是否具有訪問資料物件的許可權。也就是能否進入住戶門了,能夠進入住戶門即確認為真正的業主。這裡的訪問許可權包括增、刪、改、查、等操作。
實際操作
1、建立登入賬號(create login)
這一步就是獲取連線權。包括:建立、修改、啟用、禁用、刪除登入賬號等操作。
圖示:建立了一個“xiaoming”的登入賬戶,密碼為“xiaoming123”。隨後可以使用此賬戶登入資料庫伺服器,其他功能讀者可以自行嘗試操作。
禁用賬戶是指該賬戶存在,但不能使用;刪除則意味著該賬戶徹底從伺服器中消失。一個登入賬號能連線到資料庫伺服器,但並不能登入資料庫。就好比能夠進入小區的人,未必能進入大樓的單元門。
2、建立資料庫使用者(create user)
這一步就是獲取資料庫的訪問許可權。包括:建立、修改、刪除等。需要強調的是:
第一:資料庫使用者必須定位到指定的資料庫;
第二:一個登入賬戶對於一個資料庫只能允許有一個資料庫使用者;即資料庫使用者與登陸賬戶是一對一的關係。
有了資料庫使用者,但還是沒有訪問該資料庫資料物件的許可權。就像進入了大樓單元門,如果沒有住戶門鑰匙,依然進不來家門。
3、授權 (grant)
許可權的種類三種,分別為資料物件許可權、語句許可權和隱含許可權。資料物件許可權,主要指資料操作的語句許可權,即增、刪、改、查等操作。
操作上分為授權、收回和禁用三種方式:
授權(grant):對使用者授予某種許可權
收回(revoke):對使用者收回已授予的許可權
禁用(deny):禁止使用者擁有某種許可權
圖示中第34行程式碼,針對cardinfo表,授予使用者zuxia_netbar查詢、新增、修改、刪除等四中許可權。關鍵詞on後為表名,to後為使用者名稱。
第37行程式碼,針對cardinfo表中的cardnumber、cardbalance兩個欄位,授予使用者zuxia_netbar查詢的許可權。也就是隻能對特定表的特定欄位進行查詢。
第40行程式碼,授予使用者zuxia_netbar對資料庫所有表格的查詢許可權。
回收和禁用類同上面授權的語法,此處不再贅述。
本作品採用《CC 協議》,轉載必須註明作者和本文連結