Mein Tip bei so einer sicheren Trennung der Tabellen vom Benutzer ist die Verwendung von SP = Stored Procedures.
(wer es noch nicht wissen sollte, eine SP kann auch Datensätze zurückliefern
)
Zumal man bei einer SP auch Parameter übergeben kann, die den SELECT auch gleich einschränken.
Beispiel:
hole_mal_daten( <Mandant>, <ZeilenProSeite>, <Seite> )
Mit so einer SP halt man sich nur eine bestimmte Anzahl von Zeilen und kann durch verändern der Seitenzahl schön durchblättern.
In der SP kann ich dann die ganze Filterung reinbauen, damit auch nur diese Daten kommen.
Auch das Schreiben von Daten lässt man über SP's laufen.
Dann kann man den Benutzer getrost von den Tabellen abklemmen.
Aber eine View dafür zu benutzen ist doch sehr ressourcenfressend (wie du ja auch siehst).
cu
Oliver