Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Database Connectie – SQL Script Generator

Een krachtige PyQt6 GUI-tool voor Oracle databasebeheer

BTOP

Een Python GUI-tool (PyQt6) voor het snel opzetten van een Oracle databaseconnectie, uitvoeren van vaste SQL-query's en het genereren van uitvoerbare SQL-scripts met opties zoals spool, linesize, heading en gebruikersbeheer.

## 🎯 Doel

Deze tool is bedoeld voor DBA’s of ontwikkelaars die snel:

- een connectie willen leggen met een Oracle database,

- een vaste SQL-query willen uitvoeren,

- of gebruikersaccounts willen beheren via een GUI.

Ideaal voor herbruikbare SQL-scripts, auditqueries, en ad-hoc connecties zonder handmatig scripten.


## 🖥️ Functionaliteiten

- 🔐 **Credential Management** (via versleuteld bestand)

- 💾 **Spoolopties** (inclusief pad & bestandsnaam)

- 🧾 **Linesize en heading configuratie**

- 📜 **Direct script uitvoeren (.sql)**

- 📂 **Vaste query’s laden uit sql/ map + metadata (JSON)**

- 👤 **Gebruikersbeheer (unlock + password reset met random generator)**

- 🎨 **GUI met logo en beschrijvingen**


## 🚀 Installatie

1. Zorg dat Python 3.10+ is geïnstalleerd

2. Installeer dependencies:

pip install pyqt6 cryptography


Clone of kopieer dit project, en plaats het in een folder met:

key.key — de encryptiesleutel

credentials.enc — versleutelde Oracle login (JSON)

sql/ — folder met .sql bestanden

fixed_queries.json — metadata voor de vaste query’s

logo.png, icon.ico, bottom.png — optioneel voor branding

Start de applicatie:


python start_sql3.py



sql-generator/
├── start_sql3.py               # De hoofdapplicatie (GUI)
├── versleutel.py               # Script om credentials te versleutelen
├── credentials.json            # (tijdelijk) open JSON met login
├── credentials.enc             # Versleutelde login info
├── key.key                     # AES-sleutel
├── sql/                        # Map met herbruikbare .sql-query's
├── fixed_queries.json          # Metadata voor query-uitleg
├── icon.ico / logo.png         # Optionele branding
└── README.md


🔐 Credential versleutelen
Je gebruikt het script versleutel.py om je credentials.json veilig om te zetten naar een versleuteld bestand (credentials.enc).

Stap 1: Genereer de sleutel (eenmalig)
from cryptography.fernet import Fernet

key = Fernet.generate_key()
with open("key.key", "wb") as f:
    f.write(key)

Stap 2: Maak een credentials.json
{
  "username": "scott",
  "password": "tiger"
}
Stap 3: Versleutel met versleutel.py
from cryptography.fernet import Fernet

# Lees de sleutel in
with open("key.key", "rb") as key_file:
    key = key_file.read()
fernet = Fernet(key)

# Lees de originele JSON-data
with open("credentials.json", "rb") as file:
    original_data = file.read()

# Versleutel de data
encrypted_data = fernet.encrypt(original_data)

# Sla de versleutelde data op
with open("credentials.enc", "wb") as enc_file:
    enc_file.write(encrypted_data)

print("Credentials versleuteld en opgeslagen in credentials.enc")
Je kunt daarna credentials.json verwijderen.


▶️ Starten van de tool
Zorg dat je je projectstructuur goed hebt ingericht en voer uit:

python start_sql3.py
🧠 Werking vaste query’s
Alle .sql bestanden in de sql/ map worden automatisch geladen

De uitleg per bestand staat in fixed_queries.json:

{
  "gebruikers_overzicht.sql": "Geeft alle actieve gebruikers terug met rollen en status.",
  "tablespace_check.sql": "Overzicht van beschikbare en gebruikte ruimte per tablespace."
}
Deze worden weergegeven in de GUI bij selectie.

🧪 Extra opties in GUI
Spool inschakelen: geef directory en bestandsnaam op

Direct script uitvoeren: laad een bestaand SQL-bestand

NLS_LANG + chcp 1252: vink aan voor internationale tekens

Gebruikersbeheer:

Vul username in

Vink aan om te unlocken

Klik “Wachtwoord wijzigen” → random wachtwoord + dialoog

About

Een Python GUI-tool (PyQt6) voor het snel opzetten van een Oracle databaseconnectie, uitvoeren van vaste SQL-query's en het genereren van uitvoerbare SQL-scripts met opties zoals spool, linesize, heading en gebruikersbeheer.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages