81 lines
2.5 KiB
PowerShell
81 lines
2.5 KiB
PowerShell
# ============================================================
|
|
# Probe de LECTURE SEULE de la base Licence HFSQL via OLEDB.
|
|
# N'effectue AUCUNE écriture. N'expose aucun secret.
|
|
# ============================================================
|
|
param(
|
|
[string]$ConfigPath = "config/hfsql-test.local.json",
|
|
[string]$Section = "LicenseConnection",
|
|
[string]$DatabaseOverride = ""
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
# --- Lecture de la config locale (contient les secrets) ---
|
|
$config = Get-Content $ConfigPath -Raw | ConvertFrom-Json
|
|
$db = $config.$Section
|
|
|
|
if ($null -eq $db) {
|
|
Write-Output "SECTION $Section : ABSENTE"
|
|
exit 1
|
|
}
|
|
|
|
$server = $db.Server
|
|
$port = $db.Port
|
|
$database = if ([string]::IsNullOrWhiteSpace($DatabaseOverride)) { $db.DatabaseName } else { $DatabaseOverride }
|
|
$login = $db.Login
|
|
$password = $db.Password
|
|
|
|
|
|
Write-Output "=== PROBE LECTURE SEULE OLEDB HFSQL ==="
|
|
Write-Output "Section : $Section"
|
|
Write-Output "Server : $server"
|
|
Write-Output "Port : $port"
|
|
Write-Output "Database : $database"
|
|
Write-Output "Login : $login"
|
|
Write-Output "Provider : PCSOFT.HFSQL"
|
|
Write-Output "Mode : LECTURE SEULE (aucune ecriture)"
|
|
Write-Output ""
|
|
|
|
# --- Construction de la connection string OLEDB ---
|
|
$connStr = "Provider=PCSOFT.HFSQL;Data Source=$server`:$port;Initial Catalog=$database;User ID=$login;Password=$password"
|
|
|
|
try {
|
|
$conn = New-Object System.Data.OleDb.OleDbConnection($connStr)
|
|
$conn.Open()
|
|
Write-Output "CONNEXION : OUVERTE"
|
|
Write-Output "State : $($conn.State)"
|
|
Write-Output ""
|
|
|
|
# --- Liste des tables ---
|
|
$schema = $conn.GetOleDbSchemaTable([System.Data.OleDb.OleDbSchemaGuid]::Tables, $null)
|
|
if ($null -eq $schema) {
|
|
Write-Output "TABLES : schema non disponible"
|
|
} else {
|
|
Write-Output "TABLES ($($schema.Rows.Count)) :"
|
|
foreach ($row in $schema.Rows) {
|
|
$tableName = $row["TABLE_NAME"]
|
|
$tableType = $row["TABLE_TYPE"]
|
|
Write-Output " - $tableName [$tableType]"
|
|
}
|
|
}
|
|
Write-Output ""
|
|
|
|
# --- Test SELECT 1 ---
|
|
$cmd = $conn.CreateCommand()
|
|
$cmd.CommandText = "SELECT 1"
|
|
$result = $cmd.ExecuteScalar()
|
|
Write-Output "SELECT 1 : $result"
|
|
|
|
$conn.Close()
|
|
Write-Output ""
|
|
Write-Output "CONNEXION : FERMEE"
|
|
Write-Output "RESULTAT : OK (lecture seule)"
|
|
exit 0
|
|
}
|
|
catch {
|
|
Write-Output "CONNEXION : ECHEC"
|
|
Write-Output "Erreur : $($_.Exception.Message)"
|
|
Write-Output "RESULTAT : KO"
|
|
exit 3
|
|
}
|