2010-02-03 6 views
1

J'essaie de sécuriser un MS Access 2003 mdb en utilisant la sécurité du groupe de travail. Je l'ai configuré en grande partie (en utilisant un nouveau MDW, etc.), mais je ne peux pas empêcher les gens de créer de nouvelles tables dans la base de données, s'ils ont l'accès pour l'ouvrir. Est-ce que je manque quelque chose?Empêcher les utilisateurs de créer une table

Aucun des comptes ne dispose d'autorisations autorisées, je le fais par le biais de groupes. Les utilisateurs ont uniquement un accès Open \ Run à la base de données, pas d'accès à < New Tables/Queries> et seulement un accès «Read Data» sur toutes les autres tables, y compris les tables MSys*.

Des pensées ou j'essaie de faire l'impossible?

--Update--

J'ai essayé d'utiliser l'assistant comme l'a suggéré, mais qui me laisse toujours avec le même problème. J'ai créé une base de données vide & a exécuté l'Assistant dessus. Affecté 2 utilisateurs, Me & Utilisateur, et supprimé tous les accès aux groupes standard. J'ai ajouté moi dans le groupe Admin & Utilisateur au groupe en lecture seule.

Si vous n'utilisez pas le MDW, l'accès est refusé, comme prévu. Se connecter en tant que Me permet un accès complet (Concevoir des objets, ajouter des données, supprimer des données, etc.), se connecter en tant qu'Utilisateur permettra de lire les tables inexistantes, mais pas ajouter des données ou les concevoir (comme prévu), mais une nouvelle table, que l'utilisateur aura alors un accès complet à ajouter, supprimer, etc.

+0

Vous ne l'avez pas sécurisé correctement. Vous devez exécuter l'assistant de sécurité qui crée un nouveau groupe de travail avec un groupe ADMIN différent des fichiers de groupe de travail par défaut (qui ont tous le même groupe ADMIN). L'approche habituelle consiste à supprimer toutes les autorisations pour les groupes et les utilisateurs intégrés et à utiliser les groupes de clients pour fournir l'accès. –

+1

J'ai ajouté plus de détails à ce que j'ai essayé jusqu'à présent, qui comprenait l'assistant. Je commence à penser que c'est une limitation de la sécurité du groupe de travail, je vais devoir travailler dans le code. B. – oharab

+0

BTW: J'ai utilisé une citation comme un sig depuis longtemps car il me fait sourire à chaque fois: Citation (David W. Fenton): Nous pourrions être confondus exactement de la même manière, mais la confusion pourrait être comme Nulls, et non comparable. – oharab

Répondre

1

Donc, plus d'un an après avoir posté cette question, j'ai encore une fois à la résoudre, mais son temps avec succès!

Je suis tombé sur le Microsoft Accesss Permissions Explorer et cela a montré que les méthodes standard de sécurisation de la base de données, à la fois manuellement et à l'aide de l'assistant donnent encore les utilisateurs groupe explicite Créer permsissions sur le conteneur Tabes. Ce même logiciel permet également la révocation desdites permissions, donc maintenant je peux avoir une base de données entièrement sécurisée, où n'importe quel utilisateur peut accéder au mdb sans utiliser une MDB spéciale, mais ils peuvent seulement accéder et modifier les données que je les veux.

+0

Est-ce que cela a également empêché les utilisateurs d'enregistrer de nouvelles requêtes? Désolé de poser cette question si tard, mais je viens de trouver cette réponse. – HansUp

0

Vos utilisateurs peuvent-ils utiliser la version d'exécution de msAccess? Ils n'auront pas la possibilité de créer un nouvel objet Access, tel qu'une table, une requête, un formulaire, etc.

Et la version d'exécution est gratuite, donc vous aurez également des licences de rechange!

+1

La version d'exécution permettra toujours de créer des tables en utilisant DAO (ou ADO), cela ne fonctionnera donc pas.:-( – oharab

+0

Je ne suis pas vraiment sûr de cela, ce serait vrai si les utilisateurs ont la possibilité de générer du code VB et de l'utiliser pour envoyer des instructions DDL sur votre fichier d'accès, mais cela ne sera pas possible avec une version d'Access Ensuite, si vos utilisateurs sont assez intelligents pour faire ce genre de choses, ils peuvent alors écrire le même code dans un module Excel ou Word pour créer ces tables, dans ce cas vous devrez passer à SQL SERVER pour améliorer –

+1

Ou ils pourraient écrire vbScript pour mettre à jour vos données avec Jet –

Questions connexes