Vous ne pouvez pas empêcher l'administrateur système d'accéder aux données, vous non plus.
Cependant, personne sauf le dba désigné ne doit avoir le mot de passe pour le compte sa. Si sa n'a pas de mot de passe ou si beaucoup de personnes ont le mot de passe, changez-le maintenant. Si l'application accède via sa, changez-la immédiatement. Autrement, vous pouvez limiter l'accès en supprimant l'accès à tous les autres comptes des tables et des vues (y compris en sélectionnant l'accès) et autoriser uniquement l'accès à l'exécutif via les procs stockés. De cette façon, n'importe qui, sauf l'administrateur désigné, peut seulement faire ce que les procs stockés font et rien d'autre. Vous ne pouvez pas le faire cependant si vous avez utilisé un SQL dynamique soit dans l'application, soit dans les process stockés, ce qui est une des raisons pour lesquelles SQL dynamique est une mauvaise idée.
donc si un utilisateur n'a pas d'accès SELECT sur une certaine table, mais a un accès EXEC sur une procédure stockée qui fait un SELECT à partir de cette même table, l'utilisateur peut voir les données? –
Oui, mais uniquement via la procédure stockée. – MartW
Oui, vous avez raison. –