Ich möchte nicht, dass die Daten aus der Userdatenbank geholt werden können, wenn nicht vorher CUSTOM_AUTH erfolgreich durchgeführt wurde. Habt ihr Ideen, wie die beste Vorgehensweise wäre?
Mach doch eine Stored Proc aus deiner Function, die im Erfolgsfall den kompletten Datensatz zurückgibt. Damit hast du auch einen Performancegewinn. Macht keinen Sinn, erst die Authentifizierung zu prüfen und dann erst die Daten abzufragen, wenn sowieso beides direkt hintereinander gemacht wird. Dann lieber alles in einem Schritt.
Du musst die Rechte des Webusers so setzen, dass er keine SELECTs auf die Tabelle machen kann, sondern nur EXEC
Ausserdem: wie merkt man sich, dass CUSTOM_AUTH korrekt ausgeführt wurde?
Dazu bräuchtest du eine weitere Tabelle, wo du bei jedem Auth die Session mit Timestamp und/oder Expiration-Time speicherst. Wenn du noch weitere Tabellen schützen willst, machst du dafür auch jeweils eine Stored Proc, wo du die Session ID übergeben musst, damit die Gültigkeit geprüft werden kann.