SQLOLE.SQLServer 是 SQL Server 專用的 COM 自動化介面,允許在 ASP/VBScript 中直接操作伺服器層級物件(資料庫、資料表、檢視、預存程序等),不需透過 ADO 連線查詢系統表。適合建立管理工具、結構代碼產生器、部署腳本等場景。
<%@ LANGUAGE = VBScript %>
<%
Dim oSQLServer
Set oSQLServer = CreateObject("SQLOPE.SQLServer") ' 注意:正確 ProgID 為 SQLOLE.SQLServer
Dim strServer, strLogin, strPwd
strServer = "."
strLogin = "sa"
strPwd = ""
On Error Resume Next
oSQLServer.Connect strServer, strLogin, strPwd
If Err.Number <> 0 Then
Response.Write "連線失敗: " & Err.Description
Response.End
End If
%>
' 所有使用者資料庫
For Each SQLDB In oSQLServer.Databases
If Not SQLDB.SystemObject Then
Response.Write SQLDB.Name & "
"
End If
Next
' 特定資料庫的資料表
Dim pubDatabase
Set pubDatabase = oSQLServer.Databases("pubs")
For Each DBTable In pubDatabase.Tables
Response.Write DBTable.Name & "
"
Next
' 檢視
For Each DBView In pubDatabase.Views
Response.Write DBView.Name & " - " & Left(DBView.Text, 200) & "
"
Next
' 預存程序
For Each DBSP In pubDatabase.StoredProcedures
Response.Write DBSP.Name & "
"
' Response.Write DBSP.Text ' 取得完整定義
Next
<%@ LANGUAGE = VBScript %>
SQLOLE Demo
<%
Dim oSQLServer, strServer, strLogin, strPwd
Set oSQLServer = CreateObject("SQLOLE.SQLServer")
strServer = "." : strLogin = "sa" : strPwd = ""
oSQLServer.Connect strServer, strLogin, strPwd
%>
Table.Columns、Table.Indexes、Table.Keys 組合 DDLSQLOLE.SQLServer 實例,遞迴比對物件清單與屬性Database.ExecuteImmediate 執行sysadmin 或至少 db_owner 才能列舉所有物件sa 密碼,建議用 Windows 整合驗證或低權限 Proxy 帳號SQLOLE 已於 SQL Server 2005 標記棄用,SQL 2012 移除;現代專案請改用 SMO (SQL Server Management Objects) 或 PowerShell + dbatools[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
$srv = New-Object Microsoft.SqlServer.Management.Smo.Server(".")
$dbs = $srv.Databases | Where-Object { -not $_.IsSystemObject }
$dbs | Select-Object Name, Collation, RecoveryModel, CreateDate
原文附錄列出 IIS Request.ServerVariables 支援的變數,常用者:
REMOTE_ADDR、REMOTE_HOST:客戶端 IP/主機名HTTP_USER_AGENT:瀏覽器識別字串HTTP_REFERER:來源頁面SERVER_NAME、SERVER_PORT、SERVER_SOFTWARE:伺服器資訊HTTPS、HTTPS_KEYSIZE、HTTPS_SECRETKEYSIZE:SSL 相關AUTH_USER、AUTH_TYPE、AUTH_PASSWORD:驗證資訊CERT_*:客戶端憑證屬性完整清單請參考 MSDN ServerVariables 文件。