Domanda

Prerequisiti:

Esiste un'applicazione client / server scritta in Delphi32. RDBMS è SQL Server 2005. Una determinata funzionalità dell'applicazione richiede la creazione / eliminazione di trigger (dall'applicazione mediante istruzioni DDL ad hoc) nel database di destinazione.

Problema:

Se un utente appartiene a ruoli amministratore di sistema, non vi è alcun problema a creare / eliminare i trigger. Tuttavia, questo è considerato un ruolo troppo permissivo per un utente dell'applicazione.

Domande:

  • Qual è il ruolo minimo standard (ovvero il più restrittivo) di SQL Server che potrebbe essere utilizzato per la creazione / eliminazione dei trigger?
  • La creazione di un ruolo personalizzato, anziché l'utilizzo di ruoli standard, costituirebbe un approccio più fine per risolvere questo problema?
È stato utile?

Soluzione

Esistono varie opzioni a seconda dell'ambito della concessione (qualsiasi trigger in un database, uno in uno schema o una tabella specifica).

Generalmente le autorizzazioni richieste per un'operazione SQL sono documentate nel riferimento SQL. Per esempio. per CREATE TRIGGER su SQL 2008 vedere qui (scorrere fino a " ; Autorizzazioni "), in questo caso:

  

Il trigger DML richiede la persecuzione ALTER nella tabella o nella vista in cui deve essere creato il trigger

Puoi creare un ruolo concesso solo con le autorizzazioni che desideri e quindi aggiungere utenti / gruppi a quel ruolo, quindi il ruolo minimo è quello che crei con l'accesso specifico che desideri consentire ai suoi membri.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top