Qu'est-ce qu'un rôle SQL Server minimum permettant la création / suppression de déclencheurs?

StackOverflow https://stackoverflow.com/questions/1221296

Question

Prérequis:

Il existe une application client / serveur écrite en Delphi32. Le SGBDR est SQL Server 2005. Certaines fonctionnalités de l'application nécessitent la création / suppression de déclencheurs (à partir de l'application utilisant des instructions DDL ad hoc) dans la base de données cible.

Problème:

Si un utilisateur appartient aux rôles sysadmin, la création / suppression de déclencheurs ne pose aucun problème. Cependant, cela est considéré comme un rôle trop permissif pour un utilisateur d’application.

Questions:

  • Quel est le rôle SQL Server minimal (c'est-à-dire le plus restrictif) standard pouvant être utilisé pour la création / suppression de déclencheurs?
  • La création d'un rôle personnalisé, plutôt que l'utilisation de rôles standard, constituerait-elle une approche plus fine pour résoudre ce problème?
Était-ce utile?

La solution

Il existe différentes options en fonction de l'étendue de l'octroi (tout déclencheur dans une base de données, tout schéma d'un tableau ou table spécifique).

En règle générale, les autorisations requises pour une opération SQL sont documentées dans la référence SQL. Par exemple. pour CREATE TRIGGER sur SQL 2008, voir ici (faites défiler jusqu'à " ; Autorisations "), dans ce cas:

  

Le déclencheur DML nécessite la présence de ALTER sur la table ou la vue sur laquelle le déclencheur doit être créé

Vous pouvez créer un rôle doté uniquement des autorisations souhaitées, puis ajouter des utilisateurs / groupes à ce rôle. Le rôle minimal est donc celui que vous créez avec uniquement l'accès spécifique que vous souhaitez autoriser à ses membres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top