Avatar billede malm Nybegynder
25. juni 2002 - 19:25 Der er 3 kommentarer og
1 løsning

Brugere/Grupper

Hej,

Jeg kunne godt tænke mig en dialogbox med brugerid samt password, der checker hvilken gruppe brugeren tilhøre samt validere dennes password. Password skal være det samme som det personlige id brugeren oprettes med under Funktioner/Sikkerhed/Bruger - gruppe konti.

Fra en tidligere thread fandt jeg følgende kode:

    Dim wspWorkspace As Workspace
    Dim grpGroup As Group
    Dim usrUsers As User
   
    MemberOfGroup = False   
   
    Set wspWorkspace = DBEngine.Workspaces(0)
    Set grpGroup = wspWorkspace.Groups(GroupToCheck)
   
    For Each usrUsers In grpGroup.Users
        If usrUsers.Name = gstrCurrentUser Then
            MemberOfGroup = True
           
        End If
    Next usrUsers

Denne kode har jeg forsøgt anvendt men får fejlen "Item not in this collection"  i linjen wspWorkspace.Groups!

En anden ting der er alvorligt bekymrende er at ændringer i bruger - gruppekonti slår igennem fra den ene database til en anden.

Med venlig hilsen
Henrik Malmvig
Avatar billede terry Ekspert
25. juni 2002 - 19:48 #1
normally you will use a sepearte .MDW file for each database this way the users/groups have only influence on the one database.
25. juni 2002 - 23:36 #2
Hej Malm,

Der er flere ting i det, som du ønsker;

1) Du kan ikke styre at password skal være det samme som PID-koden. PID-koden er Write-Only! Du kan derfor ikke aflæse PID-koden og derefter sætte password. Det vil desuden være en mindre sikkerhedsbrist, hvis disse 2 var ens.

2) Mht grupper, så kan en bruger jo tilhører flere grupper. Du kan derfor ikke entydigt lave en funktion, som fortæller dig hvilken gruppe en bruger tilhører. I stedet kan du lave en funktion, som kontrollere om en bruger tilhører en bestemt gruppe. Du skal altså spørge, så du kan få et ja/nej-svar.

Nedenstående funktion returnere sand eller falsk afhængigt af om en given bruger tilhører en given gruppe.

Public Function InGroup(Gruppe As String, Bruger as String) As Boolean
    On Error Resume Next

    Dim wrkDefault As Workspace
    Dim usr As User
    Set wrkDefault = DBEngine.Workspaces(0)

    For Each usr In wrkDefault.Groups(Gruppe).Users
        If usr.Name = Bruger Then InGroup = True
    Next usr
End Function


Eks: If InGroup("Systemadministratorer", "Kurt") = true then .....

Hvis du på forhånd kender alle grupper, kan du selvfølgelig løbe hver gruppe gennem og checke hvilken gruppe brugeren tilhører.

3) Angående omfanget af sikkerhedsopsætningen, så har Terry ret. Du kan oprette sikkerhed/arbejdsgruppe-filer til hver database, hvis du ønsker det. Dette gøres lettest fra "Microsoft Access Arbejdsgruppeadministrator"-programmet, som enten findes i Office-mappen i start-menuen eller på harddisken under C:\Program Files\Microsoft Office\Office

/Thomas
Avatar billede malm Nybegynder
28. juni 2002 - 15:36 #3
Ok så PID er det samme som det brugeren logger ind med på et Domain?

Hvis jeg skal teste dette under Win98 skal jeg så tilføje Windows logon under mine netværksindstillinger?

Så MS-Access har ikke nogen seperat login men udnytter at man allerede er logget ind i windows?

Lidt forvirret for jeg har altid efterlyst den manglende login dialogboks :-)
29. juni 2002 - 00:57 #4
øh...vi starter lige forfra ;o)

Accecc HAR sit eget sikkerhedssystem med login-dialogboks og hele molevitten.

Du aktivere det vha menuen Funktioner->Sikkerhed->Bruger- og gruppekonti

Hvis du opretter brugere og samtidig skifter adgangskoden for default-brugeren (Admin) så vil du blive prompted for adgangskode næste gang du åbner en database.

Jeg vil anbefale dig at læse online-hjælpen om sikkerhed gennem. Det er for omfattende at gennemgå her.

/Thomas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester