W przypadku tej roli db_denycustomerchcę, aby można było WYBIERAĆ tylko kod kolumny tabeli klienta, i żaden z pozostałych. Więc zrobiłem to:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... i działa dobrze. Fajne! Ale dlaczego ?
W pokrewnych artykułach przeczytałem o stosie uprawnień, ale DENYma on pierwszeństwo. Natomiast w moim przypadku wydaje się, że ostatnie zapytanie „zapytanie” miało pierwszeństwo. Oczywiście, jeśli wykonam je w odwrotnej kolejności, ta druga również DENYukrywa kolumnę kodu.
Czy mógłbyś rozwinąć tę kwestię?
Podałem również domyślne db_datawriteri db_datareaderrole użytkownika, z którym testowałem.