在 SQL Server 7.0 的時代,要查詢授權狀態,只需使用控制台中的
「授權」,即可查詢或新增授權。
到了 SQL Server 2000 時,欲查詢 SQL Server 授權狀態可以開啟控制台中的「SQL Server 2000 授權安裝程式」:
或是使用 regedit.exe 也可以看到機碼的相關設定(黃色所圈選的地方):
第三種方式,就是使用 T-SQL 指令進行查詢:
SELECT ServerProperty('LicenseType') 授權方式, ServerProperty('NumLicenses') 授權個數
查詢結果:
如果是採用「以每一處理器」為授權模式,相關機碼所代表的意義如下:
名稱
| 類型
| 資料
| 說明
|
Mode
| DWORD
| 2
| 每一處理器(Per Processor)
|
ConcurrentLimit
| DWORD
| 4
| 處理器個數為 4 個
(會隨您安裝的環境顯示其實際的個數)
|
「以每一機座」為授權模式的機碼說明如下:
名稱
| 類型
| 資料
| 說明
|
Mode
| DWORD
| 0
| 每一機座(Per Seat) |
ConcurrentLimit | DWORD | 10 | 可連線的用戶端個數為 10 個
(會隨您於安裝時,所設定的個數而異)
|
因此,如果要調整授權的類型,當然就是修改機碼,要記得於修改機碼之後,重新啟動 SQL Server 服務,才能透過先前的 T-SQL 指令來查詢授權模式。
執行的結果第 1 個欄位(亦即授權方式)值是下列 3 種之一:
- PER_SEAT
每一基座模式
- PER_PROCESSOR
每一處理器模式
- DISABLED
停用授權
執行的結果第 2 個欄位(授權個數)是:
- 如果在每一基座模式中,便是這個 SQL Server 執行個體所登錄的用戶端授權數目。
- 如果在每一處理器模式中,便是這個 SQL Server 執行個體所登錄的處理器數目。
- 當第 1 個欄位的結果是 DISABLED 時,便會傳回 NULL。
但是從 SQL Server 2005 開始,於安裝時,根本就沒有讓我們選擇「以每一處理器」或「以每一機座」的授權模式,所以於安裝完畢之後,在控制台裡的授權安裝程式當然也沒了。此時,欲查詢授權狀態只能找出當初購買 SQL Server 的紙本授權書,如下圖所示即為 1 個用戶端授權(Client Access License)
根據 Microsoft SQL Server Support Blog 裡的 Tracking License Information in SQL 2005 一文指出,可以自行加入並編輯相關的機碼,以便透過 T-SQL 進行查詢。SQL Server 2005 的授權模式機碼位置在:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\MSSQLLicenseInfo\MSSQL9.00
但是個人怎麼測試,結果都如下圖:
如果有人成功設定完成,麻煩告訴我,讓我知道要如何去改!