Für die Rolle db_denycustomermöchte ich, dass nur der Spaltencode der Kundentabelle AUSWÄHLBAR ist und keiner der anderen. Also habe ich das gemacht:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... und es funktioniert gut. Cool! Aber warum ?
Was ich in verwandten Artikeln gelesen habe, ist, dass Berechtigungen gestapelt werden, aber DENYVorrang haben. Im Gegensatz dazu scheint in meinem Fall die letzte Berechtigungs- "Abfrage" Vorrang zu haben. Sicher genug, wenn ich sie in umgekehrter Reihenfolge ausführe, DENYverbirgt letzterer auch die Codespalte.
Könnten Sie das bitte näher erläutern?
Ich habe dem Benutzer, mit dem ich getestet habe, auch die Standardeinstellungen db_datawriterund db_datareaderRollen hinzugefügt.