2009-09-17 6 views
0

J'ai une application client-serveur dans laquelle un client .NET accède à toutes les données et procédures stockées dans une base de données SQL Server 2008.Protection des données SQL Server 2008

Est-il possible de protéger toutes ces données afin que seuls les utilisateurs que je crée et autorise puissent accéder à cette base de données spécifique? Surtout l'utilisateur «sa» vient à l'esprit. Je n'aime pas qu'il accède à toutes mes données.

Répondre

7

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.

+0

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? –

+0

Oui, mais uniquement via la procédure stockée. – MartW

+0

Oui, vous avez raison. –

3

Vous ne pouvez pas bloquer sa ou un autre administrateur système, car l'accès au système complet fait partie intégrante de leur rôle. Vous pouvez essayer de crypter les données afin qu'elles ne soient pas utiles en dehors de votre application, même si cela peut compliquer les futurs besoins de création de rapports.

+0

Le cryptage n'est pas vraiment une option car alors je devrais adapter l'ensemble de l'application (je suppose). Aussi, je suis sûr qu'il y a une pénalité de performance. Encore merci pour la réponse. – Marc

Questions connexes