Creare un ruolo di database per consentire l'accesso in lettura a tutte le tabelle; accesso in scrittura ad alcuni


9

Abbiamo un database con oltre 1000 tabelle. Devo creare un ruolo che consenta la sola lettura su tutte le tabelle, nonché l'accesso in scrittura a due tabelle specifiche.

Stavo scherzando con i ruoli del database, ma ogni volta che andavo ad aggiungere le tabelle, dovevo selezionare tutti i 1000 ... c'è un modo migliore per farlo?


In realtà potrebbe essere il modo più semplice ... C'è un modo per scriverlo? Devo conservare una serie di script per ogni volta che aggiorniamo uno di questi database, posso ripristinare immediatamente tutte le impostazioni.
Wes,

Risposte:


9

La concessione delle autorizzazioni per lo schema (ad es. dbo) Passerà in cascata a tutti gli oggetti in quello schema. Per le singole eccezioni puoi semplicemente elencarle esplicitamente:

GRANT SELECT ON SCHEMA::dbo TO [role];
GO

GRANT INSERT, UPDATE --, DELETE
  ON dbo.table_they_can_write_to TO [role];

DENY SELECT ON dbo.table_they_cannot_read TO [role];

3
Abbastanza facile. Sono contento di avere una comunità come questa.
Wes,

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.