一.本文所涉及的內容(Contents)
二.背景(Contexts)
當需要用遠程服務器數據庫和本地進行數據交互的時候(例如導數據等),我們通常會在本地創建一個遠程服務器的數據庫鏈接,關于創建創建鏈接服務器可以參考: SQL Server 創建鏈接服務器 ,但是我們很少去關注鏈接服務器的安全性問題。
為了控制鏈接服務器的安全性,我們采取的方法是:控制只有某個用戶能使用這個鏈接服務器,實現的效果就如Figure1和Figure2所示,TestLink用戶能看到并使用鏈接服務器:[192.168.1.5],而sa用戶卻無法看到鏈接服務器。另外一種安全模式如Figure14和Figure15所示。
(Figure1:sa用戶看到的鏈接服務器)
(Figure2:TestLink用戶看到的鏈接服務器)
三.安全設置(Security Settings)
對于鏈接服務器的安全,可以實現兩種效果:
1) 用戶A能看見能使用,B用戶不能看見這個鏈接服務器;
2) 用戶A能看見能使用,B用戶能看見但是沒有權限使用;
(一) 實現效果:用戶A能看見能使用,B用戶不能看見這個鏈接服務器;
1) 首先我們填寫遠程服務器的地址,如果有端口就加入端口,不填表示端口默認是1433
(Figure3:創建鏈接服務器)
2) 在不考慮安全性的問題的情況下,我通常是使用Figure4的做法來設置帳號和密碼的。
(Figure4:通常設置帳號密碼的做法)
3) 如果要實現鏈接服務器的安全,那就選擇【不建立連接】,再點擊【添加】按鈕,這樣就可以為“本地服務器登錄到遠程服務器登錄的映射”添加本地A用戶與服務器B用戶的一個映射關系。
(Figure5:未定義的登錄)
4) 本地登錄設置sa這個用戶登錄,與之對應的是遠程服務器的用戶sa和密碼****進行遠程服務器的登錄驗證,如下圖所示:
(Figure6:登錄映射)
5) 通過上面幾個步驟的設置,現在這個鏈接服務器就只有sa用戶能夠使用了,為了看到效果,我們創建一個TestLink的用戶,創建界面操作如Figure7、Figure8,為了真實反應生產環境的帳號權限管理,我們另外為TestLink分配一個數據庫權限,如Figure9圖所示。
(Figure7:創建TestLink用戶)
(Figure8:設置TestLink服務器角色)
(Figure9:設置TestLink用戶身份)
6) 分別使用sa和TestLink進行登錄就能很直觀的看出效果了:sa擁有[192.168.1.5]這個鏈接服務器的使用權限,而TestLink連看到的機會都沒有。效果如Figure1和Figure2所示。
(二) 實現效果:用戶A能看見能使用,B用戶能看見但是沒有權限使用;
1) 假設我們需要在TestLink用戶上創建一個鏈接服務器,但是想sa沒有權限使用,如果直接在TestLink用戶下創建鏈接服務器會出現下面Figure10的錯誤,因為沒有權限,權限可以使用Figure11圖進行修改。
(Figure10:TestLink用戶創建鏈接服務器錯誤)
(Figure11:修改TestLink的角色)
2) 現在我們創建一個[192.168.1.48]的鏈接服務器,設置如Figure12和Figure13所示。
(Figure12:創建新鏈接服務器)
(Figure13:設置TestLink登錄映射)
3) 我們使用sa和TestLink用戶登錄查看服務器鏈接,下圖 Figure13和Figure14中看到的列表都是一樣,那是否沒有區別呢?
(Figure14:sa用戶看到的鏈接服務器)
(Figure15:TestLink用戶看到的鏈接服務器)
4) 首先我們從使用上來看看是否有區別,在sa和TestLink用戶下使用鏈接服務器[192.168.1.48]的情況:
(Figure16:sa用戶使用鏈接服務器)
(Figure17:TestLink用戶使用鏈接服務器)
1) 用戶能不能看到鏈接服務器是由sysadmin角色來決定的,在為一個用戶分配角色的時候就應該注意這點;
2) 如果兩個用戶都在sysadmin角色下,即使他們看到的鏈接服務器列表是一樣的,但是也是可以控制鏈接服務器的權限的,如Figure16和Figure17所示;
3) 如果sa用戶知道192.168.1.48的帳號和密碼,他也可以自己在[192.168.1.48]鏈接服務器添加自己的用戶登錄映射,一樣可以使用這個遠程鏈接服務器,前提是sa用戶知道帳號和密碼;這樣只要控制192.168.1.48帳號的安全就可以了;
4) 如果想在用戶登錄映射的時候使用模擬,那么你設置的這個用戶必須與遠程鏈接服務器的用戶名和密碼要相同才可以使用;
5) 如果鏈接服務器是 SQL Server 的實例,若要獲取所有可用的統計,用戶必須擁有該表或者是鏈接服務器上 sysadmin 固定服務器角色、db_owner 固定數據庫角色或者 db_ddladmin 固定數據庫角色的成員。
四.參考文獻(References)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
