項目要求需要還原SQL Server 2008以前的.bak備份,並導出CSV或XLSX,因此考慮將還原備份這件事打包成一個本地服務。在局域網內的一臺Windows服務器上運行,通過RPC和RESTful方法來調用。但是畢竟很久不碰Windows了,所以上手遇到一些難度。
前期工作
如果不得不在Windows下進行開發,最快速幫助你找回開發感覺的是一個順手的編輯器和命令行環境。cmder(命令行環境)和VSCode是你的好朋友。Node.js
在Windows下也沒有homebrew或apt一類的東西,直接到官網下載MSI安裝包就可以了。SQL Server 2008 R2 Express
如果想通過Node.js對數據庫進行查詢,可以使用Tedious.js。這是Node.js的TDS協議實現,能夠較好地兼容各個SQL Server版本。然而對於一個新安裝的SQL Server 2008是沒法直接通過Node.js來連接的。你需要做幾件事:允許SA (SQL authentication) 方式登錄。你需要先進入SSMS (SQL Server Management Studio),以Windows賬戶直接登入Object Explorer。登入之後右鍵單擊Object Explorer的根目錄,也就是你的數據庫instance,在菜單中選擇Properties,找到Security,在Server Authentication中選擇 “SQL Server and Windows Authentication Mode”。
接下來,在Login中新建一個通過SQL Server Authentication方式登入的用戶賬戶,也就是要通過Node.js登入的用戶賬戶。
接下來要特別注意,Tedious.js的默認查詢端口是1433,但實際上SQL Server會用到一個動態端口。爲了保證服務重啓之後Node.js server總是監聽同一個端口,要去 SQL Server Configuration Manager裏面,找到SQL Server Network Configuration中的TCP/IP裏進行設置,將TCP/IP中的Dynamic Ports置空,然後在TCP Port中寫下要監聽的端口。
接下來,你就可以根據Tedious.js提供的示例代碼快速上手了。