2008-09-08 3 views
2

J'ai une application ms-access qui accède et ms-sql db via une connexion ODBC. J'essaye de forcer mes utilisateurs à mettre à jour les données seulement par la partie d'application, mais je me moque s'ils lisent les données directement ou par l'intermédiaire de leur propre MS-accès DB (ils l'emploient pour créer des rapports ad hoc). Ce que je cherche est un moyen de rendre les données seulement éditables si elles utilisent le fichier compilé .mde que je leur ai distribué. Je sais que je peux rendre les données lues uniquement pour la population générale et modifiables pour certains utilisateurs.Comment puis-je verrouiller ma base de données MS-SQL à partir de mes utilisateurs tout en continuant à y accéder via ODBC?

Existe-t-il un moyen que je peux obtenir ms-sql pour rendre les données éditables seulement si elles y accèdent par le biais de mon mde canned?

Pensée, existe-t-il un moyen d'obtenir ms-access pour se connecter à la base de données en tant qu'utilisateur différent (ou changer le login une fois connecté)?


@Jake,
Oui, il utilise des formes. Ce que je cherche à faire, c'est juste de changer d'utilisateur une fois que mon formulaire launchpad/mainmenu apparaîtra.

@Peter,
C'est en effet dans cette direction que je me dirige. Ce que je n'ai pas déterminé était de savoir comment passer à cette deuxième identification. Je ne suis pas si inquiet à propos du mot de passe qui est reniflé, les utilisateurs sont tous internes, et sur un LAN interne. S'ils peuvent sentir ce mot de passe, ils peuvent certainement renifler celui pour mon identité privilégiée.

@no un en général,
À l'heure actuelle sa sécurité par l'obscurité. J'ai donné à ces utilisations un .mdb spécial pour faire des rapports qui leur permettraient de lire des données, mais pas de les mettre à jour. Ils ne savent pas se relier aux tables via la connexion ODBC. Un utilisateur légèrement plus MS-access/DB pourrait passer ce que j'ai fait en quelques secondes - et il y en a quelques-uns qui s'imaginent être DBA, donc ils finiront par le comprendre.

Répondre

2

Il existe un moyen efficace pour les utilisateurs internes, mais il peut être piraté. Vous créez deux ID pour chaque utilisateur. L'un est un identifiant de rapport qui a un accès en lecture seule. C'est l'ID que l'utilisateur connaît: Fred/mypassword

La seconde est un ID qui peut effectuer des mises à jour. Cet identifiant est Fred_app/mypassword_mangled. Ils se connectent à votre application avec Fred. Lorsque votre application accède aux données, elle utilise l'identifiant de l'application.

Cela peut être reniflé, mais pour de nombreuses applications, cela suffit.

1

Est-ce que l'application permet les mises à jour de tableaux liés ou passe-t-elle par des formulaires? On dirait que votre idée d'utiliser un utilisateur centralisé avec des rôles distincts est la voie à suivre. Oui, vous pouvez changer d'utilisateur mais je peux introduire plus de code et une fois que vous commencez à ajouter de plus en plus de code, d'autres solutions (procédures stockées, etc.) peuvent sembler plus invitantes.

Questions connexes