Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erzwinge INSERT nur über eine gespeicherte Prozedur

Erteilen Sie einfach keinem Datenbankbenutzer (und Ihrer "öffentlichen" Rolle) die INSERT-Berechtigung für die Tabelle.

Gewähren Sie diesen Benutzern die Berechtigung, die gespeicherte Prozedur INSERT auszuführen – auf diese Weise können sie die gespeicherte Prozedur aufrufen, aber sie können keine Daten direkt in die zugrunde liegende Tabelle einfügen.

DENY INSERT ON dbo.YourTable TO PUBLIC
GRANT EXECUTE ON dbo.InsertDataProc TO PUBLIC