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