Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2011, 15h44   #1
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Par défaut Droit création de table

J'ai mis en place une sécurisation utilisateur (Access 2003).
Ca marche plutôt bien sauf que je n'arrive pas à interdire la création de table.
J'ai créé un nouvel utilisateur User1 rataché au groupe Utilisateurs (groupe obligatoire) et un un groupe Users.
Le groupe Utilisateurs n'a aucun droit.
L'utilisateur User1 n'a aucun droit et le groupe Users à juste les droits suivants :
1) Nouvelle base de donnée : ouvrir/executer
2) Table1 : Lire la structure (lire, modifier, ajouter, supprimer)
Par contre aucun droit sur Nouvelle tables/requêtes

Pourtant quand je me connecte avec User1, je peux quand même créer des tables...

Une idée ?

Alex
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 22h55   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Fais une copie de ta base de données et essaie ceci dans la copie :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub RemovePermissionCreateTable()
' Retire le droit de créer une nouvelle table/requête au groupe Users (Utilisateurs)
RemovePermCreateTableFrom "Users"
' Retire le droit de créer une nouvelle table/requête au groupe gpUsers
RemovePermCreateTableFrom "gpUsers"
' Retire le droit de créer une nouvelle table/requête à l'utilisateur toto
RemovePermCreateTableFrom "toto"
End Sub
 
Sub RemovePermCreateTableFrom(strUsrOrGrp As String)
Dim db As DAO.Database, Contnr As DAO.Container
Dim oldPerms As Long, NewPerms As Long
 
Set db = CurrentDb
Set Contnr = db.Containers("Tables")
 
Contnr.UserName = strUsrOrGrp
oldPerms = Contnr.Permissions
NewPerms = oldPerms And (Not dbSecCreate)
Contnr.Permissions = NewPerms
 
Set Contnr = Nothing
Set db = Nothing
End Sub
Attention : Le groupe Utilisateurs intégré d'Access s'appelle en réalité Users.
Dans DAO le groupe utilisateur Users est Utilisateurs dans l'interface d'Access.
Ton choix d'appeler ton groupe Users n'est donc pas judicieux.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 00h01   #3
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Merci LedzeppII.
Cela veut il dire que l'interface de sécurisation ne permet pas de faire cela ?
Entre temps j'ai essayé d'autres solutions, je suis passé par l'assistant sécurité (mon groupe ne s'appelle plus Users, ouf...).
Maintenant j'ai bien mon User1 qui n'a plus de droit de création de table.
Je fais la même chose pour le groupe "analyse" affecté à User2.
Et je veux rajouter le droit de création de table pour ce groupe. Je mets donc :
Nouvelle table => Lire et modifier le structure.
Impossible de créer des tables...
Je cherche, je cherche... mais ne trouve pas pour lui réaffecter le droit de création.
La seule piste qui me reste est que sur l'objet base de donné, il y a un droit modifier la strucuture. Peut être est il également nécessaire pour ajouter une table?
Seulement il est grisé....
Donc la je vois plus
J'imagine quand même qu'on est pas obligé de passer par du VBA pour ca...
Quelqu'un a t il déjà réglé ce problème ?
Alex
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 18h41   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,
Citation:
Envoyé par acama Voir le message
Cela veut il dire que l'interface de sécurisation ne permet pas de faire cela ?
Oui, en effet.
L'autorisation de créer de nouveaux objets base de données n'est pas gérée par l'interface d'Access.

Voici le code pour effectuer l'opérateur inverse (octroyer le droit créer nouvelle table/requête):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub GratPermissionCreateTable()
' Donner l'autorisation créer nouvelle table/requête au groupe analyse
GrantPermCreateTableTo "analyse"
End Sub
 
Sub GrantPermCreateTableTo(strUsrOrGrp As String)
Dim db As DAO.Database, Contnr As DAO.Container
Dim oldPerms As Long, NewPerms As Long
 
Set db = CurrentDb
Set Contnr = db.Containers("Tables")
 
Contnr.UserName = strUsrOrGrp
oldPerms = Contnr.Permissions
NewPerms = oldPerms Or dbSecCreate
Contnr.Permissions = NewPerms
 
Set Contnr = Nothing
Set db = Nothing
End Sub
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 22h19   #5
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 64
Points : 26
Points : 26
Salut LedZepp,

Tout d'abord merci pour ta réponse claire, nette et précise.
J'aurais pu chercher longtemps, j'ai même lu qu'on pouvait gérer toute la sécu d'Access sans une ligne de code

Bon après un coup de gueule sur Access, l'interface sécurité au dela d'être super peu ergonomique est pas complète et la doc peu précise

Bon je reste un grand fan quand même
A+
Alex
acama est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web