Wenn Excel zur Anwendung wird – und keiner es weiß
Fachabteilungen sind schnell.
Sie brauchen was? Dann basteln sie.
Excel mit Makros. Access mit Tabellen.
PHP in einem privaten Webspace.
Und die IT?
Weiß davon oft nichts.
Bis es kracht.
Das nennt man Schatten-IT.
Und das passiert nicht aus Bosheit – sondern aus Not.
Warum Schatten-IT entsteht
- Fachbereiche wollen schnell Ergebnisse
- IT ist überlastet oder zu restriktiv
- Kein offizielles Tool deckt den Sonderfall ab
- Gute Leute in der Abteilung können programmieren
- Freigaben dauern zu lange
Ergebnis: Die Fachabteilung baut’s einfach selbst.
Beispiele, die ich gesehen habe
- Access-DB mit 40 MB VBA-Code, zentral auf dem Netzlaufwerk
- Excel-Datei mit 17 Tabellen und Dutzenden ActiveX-Steuerelementen
- PHP-Formular mit Zugriff auf MySQL bei einem externen Anbieter
- Power Automate Flows mit geteiltem Konto
Und das Ganze ohne Backup. Ohne Versionskontrolle. Ohne Rechtekonzept.
Was daran gefährlich ist
- Keine Dokumentation
- Keine Wartung durch IT möglich
- Sicherheitslücken (z. B. frei zugängliche DBs)
- Datenschutz-Probleme
- Abhängigkeit von einzelnen Personen
Früher oder später liegt’s bei uns.
Dann meist als Notfall.
Wie ich Schatten-IT aufspüre
- Gespräche mit Key-Usern führen („Wie macht ihr das eigentlich…?“)
- Netzlaufwerke auf
.accdb
,.xlsm
,.php
durchsuchen - AD-Konten auf verdächtige Freigaben prüfen
- Power Platform Admin Center durchforsten
- SQL-Instanzen auf unbekannte Datenbanken prüfen
Tipp für SQL:
SELECT name, create_date, owner_sid
FROM sys.databases
WHERE name LIKE '%tool%' OR name LIKE '%test%';
Tipp für VBA-Suche (in Access):
Public Sub FindeSchattenModule()
Dim mdl As Object
For Each mdl In Application.VBE.VBProjects(0).VBComponents
If mdl.Type = 1 Then ' Modul
If InStr(mdl.CodeModule.Lines(1, mdl.CodeModule.CountOfLines), "ADODB") > 0 Then
Debug.Print "Verdächtig: " & mdl.Name
End If
End If
Next
End Sub
Wie ich bessere Alternativen biete
Nicht blockieren.
Besser: Auffangen. Verstärken.
Variante 1: Schatten-IT in geregelte Bahnen lenken
- Access-Frontend bleibt
- Datenbank ins SQL Server Backend verlagern
- Rechte sauber über AD steuern
- Versionieren per automatischem Updater
Public Sub Updater()
Dim quelle As String
Dim ziel As String
quelle = "\\server\apps\tool.accde"
ziel = Environ("USERPROFILE") & "\AppData\Local\Firma\tool.accde"
If FileDateTime(quelle) > FileDateTime(ziel) Then
FileCopy quelle, ziel
End If
Shell """" & ziel & """", vbNormalFocus
Application.Quit
End Sub
Variante 2: Low-Code richtig einführen
Power Apps + Dataverse – aber bitte mit Governance:
- separate Umgebungen
- Namenskonventionen
- Klar definierte Admins
- Backup-Routinen
- Flows nicht über Userkonten, sondern Service Accounts
Variante 3: Kleine Webtools per PHP + SQL Server
Wenn’s unbedingt Web sein muss:
- Hosting auf internem IIS
- Authentifizierung per AD
- Datenhaltung zentral auf SQL Server
- Fehlerlogging per Log-Tabelle
Beispiel-Logging in PHP:
function logError($text) {
$db = new PDO("sqlsrv:Server=localhost;Database=logdb", "user", "pass");
$stmt = $db->prepare("INSERT INTO fehlerlog (zeit, meldung) VALUES (GETDATE(), ?)");
$stmt->execute([$text]);
}
Tabelle: Schatten-IT – und was ich draus mache
Typisch | Alternative |
---|---|
Excel mit Makros | Power BI + Datenmodell oder Access-Frontend |
Access ohne Backup | mit SQL Backend + Auto-Update-Mechanismus |
PHP auf Fremdserver | internes Tool mit AD-Anbindung |
Power Automate als User | Flow mit Service Principal |
Mein Setup zur Übergabe in geregelte IT-Strukturen
Bereich | Lösung |
---|---|
Datenhaltung | SQL Server, strukturiert |
Oberfläche | Access oder Webformulare |
Rechteverwaltung | über Gruppen oder Rollen |
Support | IT-intern, nach Übergabe |
Dokumentation | Markdown im Git oder Word |
Schatten-IT ist kein Feind. Sie zeigt, wo es klemmt.
Wenn Du nicht reagierst, wird gebaut.
Wenn Du mitmachst, wird’s besser.
Und wartbar.
Und sicher.
Und dann hast Du am Ende mehr gewonnen als verloren.
No responses yet