C'è differenza tra concedere a SELECT un utente e aggiungerlo al ruolo db_datareader?


9

Mi è stato chiesto di concedere SELECT, INSERTe UPDATEad un determinato utente per tutte le tabelle di un database. Ho finito per aggiungere l'utente db_datareadere concessione INSERTed UPDATEa livello di database.

Ma questo mi ha fatto pensare, qual è la differenza (se presente) tra la concessione di un SELECTpermesso utente a livello di database o l'aggiunta al db_datareaderruolo? E c'è qualche buona pratica in un modo o nell'altro?

Risposte:


7

Rick Byham ha un post WIKI che mostra i ruoli fissi del server e del database e come vengono mappati. Puoi guardare qui: http://social.technet.microsoft.com/wiki/contents/articles/database-engine-fixed-server-and-fixed-database-roles.aspx

Il grafico mostra che il ruolo db_datareader è identico a GRANT SELECT ON [database]. Quindi va ancora bene usare, ma la raccomandazione è di spostarsi da quei ruoli ai comandi più granulari. Alcuni degli altri ruoli fissi del database sono definiti in modo meno chiaro per la maggior parte delle persone. L'uso dei comandi espliciti comporta una maggiore chiarezza nella segnalazione dei diritti.

Ovviamente sai come concedere autorizzazioni più precise. Sto cercando di staccarmi dai vecchi ruoli ogni volta che è possibile, ma db_owner (per esempio) è un'abitudine difficile da rompere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.