首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 讀寫登錄表範例:啟用 Jet SandboxMode 等實操指令

     編輯:MySQL 資料庫相關知識

SQL Server 透過擴展預存程序 xp_regread、xp_regwrite 可直接操作 Windows 登錄,常用於啟用 Access Jet 引擎的 SandBoxMode、修改啟動參數等場景。需以 sysadmin 權限執行。

啟用 Jet 4.0 SandBoxMode(允許不安全運算式)

-- 寫入:1=啟用, 0=停用
EXEC master..xp_regwrite 
  @rootkey = 'HKEY_LOCAL_MACHINE',
  @key = 'SOFTWARE\Microsoft\Jet\4.0\Engines',
  @value_name = 'SandBoxMode',
  @type = 'REG_DWORD',
  @value = 1;

讀取登錄值

-- 範例:讀取 Winlogon Userinit
EXEC master..xp_regread 
  @rootkey = 'HKEY_LOCAL_MACHINE',
  @key = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon',
  @value_name = 'Userinit';

常見資料類型對應

註冊表類型@type 參數說明
REG_DWORDREG_DWORD4 位元組整數
REG_SZREG_SZ固定長度字串
REG_EXPAND_SZREG_EXPAND_SZ含環境變數展開字串
REG_MULTI_SZREG_MULTI_SZ多字串陣列
REG_BINARYREG_BINARY二進位資料

注意事項

  1. SQL Server 服務帳號需具備登錄機碼的讀寫權限(通常以 Local System 或具管理權限的網域帳號運行)。
  2. 修改 HKEY_LOCAL_MACHINE 影響全機器,謹慎操作並備份登錄。
  3. SQL Server 2017+ 建議改用 sp_OA* OLE 自動化或 PowerShell 腳本替代,因擴展預存程序未來可能移除。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved