Per il ruolo db_denycustomer
, voglio solo SELEZIONARE il codice colonna della tabella clienti e nessuno degli altri. Quindi ho fatto questo:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... e funziona benissimo. Freddo! Ma perchè ?
Quello che ho letto negli articoli correlati è che lo stack di autorizzazioni, ma DENY
ha la precedenza. Al contrario, nel mio caso, sembra che l'ultima "query" di autorizzazione abbia avuto la precedenza. Abbastanza sicuro, se li eseguo in ordine inverso, quest'ultimo DENY
nasconde anche la colonna del codice.
Potresti per favore approfondire questo?
Ho anche incluso i valori predefiniti db_datawriter
e i db_datareader
ruoli per l'utente con cui ho provato.