Risposte:
I ruoli di database fissi forniscono autorizzazioni per l'intero database. I ruoli personalizzati entrano in gioco quando non si desidera concedere agli utenti le autorizzazioni per tutto il database, solo una parte di esso.
Ad esempio, db_datareader fornisce l'autorizzazione SELECT per ogni tabella, vista, ecc. In quel database. Per motivi di conformità, potrebbero esserci alcune tabelle o opinioni che il personale delle risorse umane dovrebbe essere in grado di SELEZIONARE e che altro personale non dovrebbe. Di solito è qui che entrano in gioco i ruoli personalizzati.
I ruoli di database standard sono ottimi per i database in cui ci sono solo pochi utenti o per quando non esiste un team di DBA per gestire le autorizzazioni. Tuttavia, se ci sono diversi utenti con un grande team di database e dati sensibili, sarebbe saggio creare ruoli personalizzati in modo da sapere chi sta guardando cosa.
Quando si tratta di sicurezza dei dati (e del database), si desidera bloccare le cose il più possibile e lasciare comunque che tutti siano in grado di svolgere il proprio lavoro senza grandi sfide. I ruoli personalizzati si adattano perfettamente a questo disegno di legge.
No, non credo che ci sia un motivo per favorire ruoli di database personalizzati TRANNE che sono più specializzati e personalizzati per l'ambiente e le esigenze. Gli sviluppatori esamineranno l'offerta standard e se si adatta al lavoro - perfetto! In caso contrario, è tempo di personalizzare!
Ragioni pratiche, in particolare con db_datareader e db_datawriter
Gli altri ruoli di db non sono realmente utilizzati che ho trovato