2009-09-15 9 views
0

Est-il possible d'empêcher un administrateur SQL Server de modifier un utilisateur dans la base de données? Le cas est qu'un utilisateur qui est créé par une application a des droits ReadOnly sur la base de données. L'administrateur du serveur d'un client ne doit pas être autorisé à modifier ces droits ou les autres paramètres de cet utilisateur et de cette base de données.empêche un administrateur SQL Server de modifier un utilisateur dans la base de données?

+2

Si l'administrateur du serveur ne peut pas le faire, qui peut? Les modifications nécessiteraient-elles une réinstallation? – spender

Répondre

1

Well-errrh - no.

L'administrateur a un accès complet à la base de données. Vous ne pouvez pas empêcher les utilisateurs d'avoir un accès complet à la base de données qu'ils installent et possèdent eux-mêmes. Ainsi, ils sont libres de jouer avec la structure de la base de données, et ils sont libres de supprimer les fichiers critiques dans l'application. Je dirais donc que le mieux que vous puissiez faire est de signaler à vos clients que le schéma de la base de données est celui que vous avez développé et testé, et s'ils apportent des modifications, vous ne pouvez pas garantir l'exactitude de l'application.

Si vous avez des super-duper avocat hot-shot, vous pouvez probebly faire un CLUF qui le rend illégal de mess avec elle, comme Apple tente de le rendre illégal d'installer OS X sur un PC;)

2

Non, vous ne pouvez pas faire cela. L'administrateur est administrateur pour raison ...

+0

Oui. Je me sentirais mal à l'aise avec une base de données qui ne permet pas l'administration. – spender

0

Pourriez-vous ne pas donner les détails du compte administrateur au client, et créer une connexion avec les autorisations/restrictions que vous mentionnez? Cela pourrait être le compte "admin" du client.

0

Si vous utilisez SQL Server 2008, déterminez si vous pouvez créer un déclencheur DDL dans la commande alter login. En tant qu'administrateur, ils pourraient encore désactiver cela, mais cela leur permettrait au moins de savoir la première fois qu'ils l'ont essayé que le changement n'a pas été commis et pourquoi. Probablement, ils ne laisseraient pas tomber le déclencheur car tout changement à la connexion serait probablement parce qu'ils ne savaient pas qu'ils n'étaient pas supposés. Ce n'est pas une solution parfaite, mais ce serait un niveau de protection.

Questions connexes