Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Ασφάλεια] Ασφάλεια δεδομένων σε ACCESS 2007

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 05-12-12, 10:45
Super Moderator
Όνομα: Αγγελος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 29-04-2010
Μηνύματα: 111
Προεπιλογή

Καλημέρα κι από εμένα..
Λιγάκι καθυστερημένη η απάντηση.. αλλά κάλιο αργά παρά ποτέ που λένε! :D :P

Επειδή αντιμετώπισα το πρόβλημα του φίλου μας σε εφαρμογή μου για πελάτη, τελικά κατέληξα στην λύση της SQL με .accde αρχείο για τους χρήστες μου.

Ποιο συγκεκριμένα, η εφαρμογή είχε 2 σκέλη:
α) την ασφάλεια των δεδομένων και β) την ταχύτητα της Access εφαρμογής!
Σχετικά με την ασφάλεια δεδομένων, θα σας πω πως θεωρώ τον πιο ασφαλή τρόπο την βάση δεδομένων σε SQL, τα δεδομένα σου είναι σε κάποιον server κοινόχρηστα και με την ασφάλεια που σου προσφέρει ένας Domain Controller σε συνδυασμό με την ασφάλεια της SQL. Εάν δεν υπάρχει κάποιος Server, οκ απλά έχεις τις δικλίδες ασφαλείας της SQL..

Ο λόγος που είναι ασφαλές?
α) Σε δίκτυο με Domain Controller έλεγχος από τον Server (Δικαιώματα κλπ) ή τοπικός SQL έλεγχος χρήστη από την SQL.
β) FrontEnd περιβάλλον για τον χρήστη, όπως το εξήγησε ποιο πάνω ο Τάσος. (split, reconnect db tables "εδώ κλειδώνει με κωδικό στον SQL ή στον Domain Controller η βάση)
γ) Κωδικός πρόσβασης στο αρχείο front end (login_splash απο τον Τάσο)
δ) Προστασία του αρχείου για: Shift κατά το άνοιγμα, απο πλήκτρα συντομέυσεων (π.χ. F5, F1, F11, F12 κλπ)
ε) Κλείδωμα του αρχείου σε μορφή .accde (για να αποτρέψουμε πιθανές τροποποιήσεις σε φόρμες, εκθέσεις, κώδικα κλπ)
στ) Δημιουργία δικού μας Ribbon για την εφαρμογή
ζ) Επιβεβαίωση χρήστη με χρήση του CPU_ID (καλό είναι για τον Super_User να παρακαμφθεί αυτό το βήμα) καθώς επίσης και επιβεβαίωση για την ύπαρξη του αρχείου στον δίσκο

Πολύ πιθανό, κάπου να υπάρχει κάποια "τρύπα" στα παραπάνω, αλλά ποτέ και τπτ δεν είναι ασφαλές..

Για την δική σου περίπτωση όμως, πιστεύω πως είναι οκ, γιατί:
α- και να αντιγράψει κάποιος το αρχείο της Access σε φλασάκι, ούτε καν να το ανοίξει δεν θα μπορεί
β- ακόμα και backup των δεδομένων (με κάποιο μαγικό τρόπο) να μπορέσει να πάρει, θα πρέπει να στήσει SQL Server, να περάσει πάνω το Backup, να παρακάμψει το CPU_ID (που δεν ξέρει καν πως υπάρχει ως έλεγχος μέσα στην εφαρμογή, μπορείς να αποθηκεύσεις το cpu_id.dll όπου κι αν θέλεις στον δίσκο σου.. ) ή να βρει για ποιον χρήστη δεν λειτουργεί το κλείδωμα του cpu_id εάν φυσικά έχει αποθηκεύσει σωστά το αρχείο στον δίσκο του.

Όλα τα παραπάνω φυσικά, εάν έχει στα χέρια του ένα bakup των δεδομένων και ξαναστήσει απο την αρχή το frontent είναι άχρηστα..

Όπως ξαναείπα, τίποτα δεν είναι απόλυτα ασφαλές.

Φιλικά, Άγγελος
__________________
Always Look on the Bright Side of Life!
Απάντηση με παράθεση
  #12  
Παλιά 26-03-15, 11:44
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 320
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από editolis Εμφάνιση μηνυμάτων
Εαν δεν κανω λαθος υπαρχει και η λυση του Volume Serial Number του σκληρου δισκου. Η Βαση ανοιγει μονο στον υπολογιστη που θελεις. Με καποιες μικροτροποποιησεις κανεις δεν μπορει να την ανοιξει ακομα και εαν την εχει παρει με φλασάκι.
Πως ακριβώς δουλεύει αυτό.Μπορεί κάποιος να δώσει παράδειγμα;
Απάντηση με παράθεση
  #13  
Παλιά 27-03-15, 21:16
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλησπέρα

Στο κώδικα που ακολουθεί,...

Κώδικας:
Private Sub klidoma()
    Dim sernum As Variant, varX As Variant

    Dim Fso As New Scripting.FileSystemObject
    sernum = Fso.GetDrive("c:\").SerialNumber
    
    varX = DLookup("[snum]", "tblsernumber", "[ID] = 1")
    If IsNull(varX) Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsernumber ([snum]) VALUES (" & sernum & ")"
        DoCmd.SetWarnings True
    Else
        If sernum <> varX Then
            MsgBox "Δεν έχετε την άδεια χρήσης !", vbCritical, "Έλεγχος"
            DoCmd.Quit
        End If
    End If
End Sub
...Όπως βλέπεις πρέπει να έχεις ένα πίνακα tblsernumber με δυο αριθμητικά πεδία [id] και [snum] . Φρόντισε η ρουτίνα να τρέξει στο on load της πρώτης φόρμας.
Την πρώτη φορά ο πίνακας θα συμπληρωθεί με τον σειριακό αριθμό του σκληρού σου δίσκου και κάθε επόμενη φορά θα διαβάζει τον αποθηκευμένο αριθμό, συγκρίνοντάς τον με αυτόν του υπολογιστή στο οποίο καλείται να "τρέξει".

ΠΡΟΣΟΧΗ : Κράτα αντίγραφο ...μη μείνεις απέξω.

Με εκτίμηση / Νίκος
Απάντηση με παράθεση
  #14  
Παλιά 28-03-15, 08:48
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 320
Προεπιλογή

Σε ευχαριστώ Νίκο, πολύ χρήσιμο.
Απάντηση με παράθεση
  #15  
Παλιά 28-03-15, 09:53
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 320
Προεπιλογή

Νίκο τα έκανα αυτά που είπες αλλά μου βγάζει σφάλμα.Δεν ξέρω τι μπορεί να κάνω λάθος.
Δημιούργησα τον πίνακα με τα πεδία όπως καθορίζει η ρουτίνα την οποία καλώ από την πρώτη φόρμα που ανοίγει ("με τη φόρτωση"), μου βγάζει όμως compile error όπως θα δεις στο συνημμένο αρχείο.
Συνημμένα Αρχεία
Τύπος Αρχείου: zip ΚΛΕΙΔΩΜΑ ΒΑΣΗΣ.zip (363,7 KB, 41 εμφανίσεις)
Απάντηση με παράθεση
  #16  
Παλιά 28-03-15, 11:46
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

Καλημέρα

Στον Editor : Tools ... References ... ενεργοποίησε το microsoft scripting Runtime.


με εκτίμηση / Νίκος
Απάντηση με παράθεση
  #17  
Παλιά 29-03-15, 14:10
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 320
Προεπιλογή

Νίκο το έκανα αλλά πάλι δεν δουλεύει.

ΟΛΑ ΚΑΛΑ ΤΟ ΕΦΤΙΑΞΑ.

Τελευταία επεξεργασία από το χρήστη smasak : 29-03-15 στις 20:00.
Απάντηση με παράθεση
  #18  
Παλιά 30-03-15, 16:15
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή

...Μάλλον ξέχασες να πατήσεις ΟΚ !
Απάντηση με παράθεση
  #19  
Παλιά 30-03-15, 16:43
Όνομα: Χάρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-02-2015
Μηνύματα: 20
Προεπιλογή

Άρα συμπέρασμα ΔΕΝ μπορούμε να έχουμε ασφάλεια με ACCESS
Για να αυξήσουμε τη δυσκολία οι πίνακες να μην υπάρχουν καν ουτε συνδεδεμένοι...αλλά να τρέχουν με κώδικα σε κάθε περίπτωση. Δηλαδή φτιάχνουμε μια VB εφαρμογή καθαρή και οι πίνακες σε server SQL και κωδικοιποιμένοι.
Απάντηση με παράθεση
  #20  
Παλιά 17-04-15, 14:30
Όνομα: ΣΑΚΗΣ
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 24-02-2013
Μηνύματα: 320
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Meteora Εμφάνιση μηνυμάτων
Καλησπέρα

Στο κώδικα που ακολουθεί,...

Κώδικας:
Private Sub klidoma()
    Dim sernum As Variant, varX As Variant

    Dim Fso As New Scripting.FileSystemObject
    sernum = Fso.GetDrive("c:\").SerialNumber
    
    varX = DLookup("[snum]", "tblsernumber", "[ID] = 1")
    If IsNull(varX) Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsernumber ([snum]) VALUES (" & sernum & ")"
        DoCmd.SetWarnings True
    Else
        If sernum <> varX Then
            MsgBox "Δεν έχετε την άδεια χρήσης !", vbCritical, "Έλεγχος"
            DoCmd.Quit
        End If
    End If
End Sub
...Όπως βλέπεις πρέπει να έχεις ένα πίνακα tblsernumber με δυο αριθμητικά πεδία [id] και [snum] . Φρόντισε η ρουτίνα να τρέξει στο on load της πρώτης φόρμας.
Την πρώτη φορά ο πίνακας θα συμπληρωθεί με τον σειριακό αριθμό του σκληρού σου δίσκου και κάθε επόμενη φορά θα διαβάζει τον αποθηκευμένο αριθμό, συγκρίνοντάς τον με αυτόν του υπολογιστή στο οποίο καλείται να "τρέξει".

ΠΡΟΣΟΧΗ : Κράτα αντίγραφο ...μη μείνεις απέξω.

Με εκτίμηση / Νίκος

Σε περίπτωση που "κρασάρει" ο Η/Υ και χρειασθεί εκ νέου format τι γίνεται;Χάνονται τα πάντα ή μπορούμε να κάνουμε κάτι;
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Ασφάλεια Βάσης Δεδομένων jimvasiloudis Access - Ερωτήσεις / Απαντήσεις 11 03-02-12 10:13
Ασφάλεια Βάσης Δεδομένων Meteora Access - Ερωτήσεις / Απαντήσεις 11 13-12-11 10:38
[ Ασφάλεια] Ασφάλεια Βάσης δεδομένων σε επίπεδο χρήστη TZON_FON Access - Ερωτήσεις / Απαντήσεις 4 26-09-10 21:28
[ Ασφάλεια] Ασφάλεια βάσης δεδομένων - Access 2000 artchrist73 Access - Ερωτήσεις / Απαντήσεις 5 10-08-10 12:30


Η ώρα είναι 20:46.