Also mal so hingedaddelt:
Die Verwaltung, was wo liegt und wer womit was machen darf kann soll muss, legst Du in die Datenbank. Da sagst Du ja, dass Du das hinbekommst.
Die Dateien kommen nicht in ein Blob in der
DB, sondern in die
DB wird nur geschrieben, wo die zugehörige Datei abgelegt wurde.
Damit benötigst Du keine Rechte mehr für "irgendwelche Normalbenutzer".
Und die Geschäftsleitung durchsucht die Dateien gefälligst nicht mehr mit dem Explorer, sondern eben auf mit dem Programm oder bekommt notfalls ein eigenes Programm, dass die Datenbankinhalte explorerähnlich darstellt und bekommt dann von dem Programm ggfls. die Dateien zur Ansicht geliefert. (Und die Suche nach Inhalten in diesen Größenordnungen könnte durch gezielte Auswahl per Select * from wasauchimmer where wiebitte = suchmirdas dürfte da eventuell deutlich effektiver werden.) Die Geschäftsleitung könnte dadurch also durchaus auch profitieren. (Und keiner von denen kann mehr irgendwas versehentlich per Explorer verschieben, löschen ...) Eine ggfls. erforderliche Revisionssichertheit könnte dadurch steigen.
Pflapsig formuliert: Die umständliche Rechtevergabe auf Dateiebene lagerst Du aus in eine Rechtevergabe auf Datenbankebene.
Damit benötigst Du (vermutlich) nur noch einen Datenbankbenutzer. Wer wann was zu sehen bekommt oder schreiben darf, ergibt sich aus der im Programm implementierten Geschäftslogik.
Wenn das Programm schon über ein sinnvolles Berechtigungssystem verfügt (muss man sich beim Programmstart dort irgendwie Anmelden oder eher Doppelklick zum Programmstart und man darf loslegen?), so dürfte der Aufwand vertretbar und überschaubar sein.
Möglichkeiten, wie das Programm die Daten an die in der Datenbank vermerkten Stelle bekommt, wurde schon beschrieben. Das Programm macht das eben nicht selbst, sondern bittet eine andere Software, dies zu übernehmen. Nur diese Software (Webserver, Dienst ...) benötigt dann Rechte im Filesystem.