Lasst uns sagen, dass ich TableA
haben, die 5 Spalten:SQL Server wählen Sie nur Spalten mit Berechtigungen
Col1
Col2
Col3
Col4
Col5
und ich bin mit SQL Server über User1 verbunden. Diese User1 hat Berechtigungen wählen col1, col2, col3 nur
ich diese
select *
from information_schema.COLUMN_PRIVILEGES
und Schleife für alle Rück Spalten tun können, und meine Select-Anweisung zu bauen, aber ich habe mehr als 500 select-Anweisungen in meinem Projekt (BIG-HR-Management-System), also brauche ich einen anderen Weg mit weniger Code-Änderung.
Nun, wenn ich versuche,
Select * from TableA
es einen Fehler zurück.
Also wie kann ich nur diese Spalten mit Berechtigungen auswählen, ohne alle meinen Code zu ändern?
Editiert: Ich möchte eine Methode SQL Ausnahme außer Kraft zu setzen, wenn eine Spalte ohne Erlaubnis der Auswahl nur null zurück und zeigen keine Ausnahme
Edited 2: - die select * war nur ein Beispiel, einfacher zu sein: wenn ich 2 SQL Server-Benutzer haben, die erste Genehmigung in col1 hat - col3 die zweite hat die Erlaubnis, col4-Col6 , was die beste Methode ist, Spalten mit Erlaubnis
Korrigieren Sie Ihre Anwendung so, dass nur die benötigten Spalten abgerufen werden. Möglicherweise müssen Sie die Abfragen basierend darauf erstellen, auf welche Benutzer Zugriff haben. –
Sie sollten immer nur die Spalten auswählen, die Sie benötigen, anstatt '*' zu verwenden, damit das Problem nicht angezeigt wird. –
Dieses Projekt ist ungefähr 10 Jahre alt und ich brauche einen Monat, um alle Anfragen zu lösen. – mothana