slevinkelevra Δημοσ. 19 Φεβρουαρίου 2013 Δημοσ. 19 Φεβρουαρίου 2013 Καλησπερα Να ζητησω προκαταβολικα συγνωμη για αλλη μια ερωτηση-"σεντονι". Χρησιμοποιω postgreSql 9.1 και ειμαι καινουριος στη λογικη της, δεν την εχω ξαναδουλεψει. Θελω να φτιαξω ενα συστημα login με διαφορετικους χρηστες που εχουν διαφορετικα δικαιωματα. Τι εχω σκεφτει μεχρι τωρα... Υπαρχει ο "visitor" ας τον πουμε. Εχει μονο select στον πινακα των χρηστων. Οταν δωσει ενας χρηστης τα στοιχεια του για Login τα πιανει η php και συνδεεται σαν visitor στη db και κανει συγκριση. Αν βρει matching pairs (login-password που δοθηκαν με αυτα στον πινακα), τοτε ξεκιναει το session. session_start(); $_SESSION['authenticated']=true; while ($arr=pg_fetch_array($r)) { και μετα ας κρατησουμε το id του γιατι σιγουρα θα χρειαστει στα querys $_SESSION['c_id']=$arr['c_id']; και μετα ας κρατησουμε και το role του. Το role ειναι ενα int πεδιο στον πινακα των χρηστων που προκαθοριζει τα δικαιωματα. Δηλαδη αν ειναι 1 μπορει να κανει update μονο τα δικα του στοιχεια που εισαγε σε εναν αλλο πινακα με ονομα info, αν ειναι 2 μπορει να κανει update ολα τα στοιχεια, ανεξαρτητα αν τα εβαλε αυτος ή οχι και αν ειναι 3 μπορει να κανει update ολα τα στοιχεια αλλα και να προσθεσει νεους χρηστες "επιπεδου" 1 και 2 καθως και να επεμβει σε αλλους πινακες. Οποτε επειδη καθε επιπεδο χρηστη, πρακτικα, θα εχει και διαφορετικο μενου, κανουμε το εξης με ενα if $_SESSION['role']=$arr['role']; if ($_SESSION['role']==1){header('Location:menouOne.php');} elseif ($_SESSION['role']==2) {header('Location:menouTwo.php');} elseif ($_SESSION['role']==3) {header('Location:menouThree.php');} οπου τον πεταει στα αντιστοιχα αρχεια. Το menouOne για παραδειγμα εχει μονο insert/update/delete για τον πινακα info (και logout). Το menouThree εχει ολα τα προηγουμενα συν "add new user", update/insert/delete για τον πινακα images κτλ. Μου μοιαζει καλη λογικη, αλλα απαιτειτη δημιουργια πολλων διαφορετικων αρχειων, και ακομα περισσοτερων αν σκεφτει κανεις οτι θα βαλω και ajax κτλ. Οι ερωτησεις μου ειναι 1. Εχετε κανα καλο link/tutorial που να περιγραφει πως δημιουργουμε νεους χρηστες στη postgreSQl με διαφορετικα δικαιωματα? Κατι εχω βρει, αλλα ειναι λιγο χαος. 2. Ολη η παραπανω λογικη σας μοιαζει σωστη ή υπαρχει καλυτερος/πιο ευκολος/πιο γρηγορος τροπος? 3. Πως "βαζουμε" σε ολο το παραπανω ασφαλεια md5?Κανα link? Ευχαριστω πολυ (ps : προσπαθησα να περιγραψω τη λογικη οσο πιο συντομα. αν θελετε διευκρινηση, πειτε μου)
dpa2007 Δημοσ. 19 Φεβρουαρίου 2013 Δημοσ. 19 Φεβρουαρίου 2013 δες αυτό ελπίζω να βοηθήσει: PostgreSQL create user PostgreSQL User Administration PostgreSQL: Documentation: 8.1: Database Roles and Privilegesελπίζω να βοηθήσουν.
ParhsG Δημοσ. 20 Φεβρουαρίου 2013 Δημοσ. 20 Φεβρουαρίου 2013 δε νομιζω πως θες απαραίτητα χρηστες για τη βαση αλλα για το συστημα. Δηλαδη οι χρηστες ειναι ενα επιπεδο ποιο πανω. Αν εχεις καποιο php framework εχουν support για ρολους κτλ..... Εκτος αν υπαρχει λογος που θες χρηστη για τη βαση. Συνηθως ομως ενα χρηστη εχεις για τη βαση σου..
warlock9_0 Δημοσ. 21 Φεβρουαρίου 2013 Δημοσ. 21 Φεβρουαρίου 2013 να φτιάξεις χρήστες για την postgre είναι λάθος, μην μπερδεύεις του χρήστες της εφαρμογής με τους χρήστες του συστήματος το σωστό είναι να φτιάξεις ένα πίνακα users στη βάση της εφαρμογής σου και να κοιτάς σε αυτόν και ανάλογα να μπορεί να δει την κάθε σελίδα ο χρήστης που συνδέεται με τη βάση και κάνει τα ερωτήματα είναι ένας, αυτός που τρέχει η postgre
Timonkaipumpa Δημοσ. 21 Φεβρουαρίου 2013 Δημοσ. 21 Φεβρουαρίου 2013 Σωστός ο warlock. Επιπροσθέτως, εάν θέλεις κάποιος user της DB να έχει πρόσβαση περιορισμένη, μπορείς κάλλιστα να το κάνεις με της functions (που είναι και funcs και procedures) της psql. +1 επίσης για την επιλογή της psql.
warlock9_0 Δημοσ. 21 Φεβρουαρίου 2013 Δημοσ. 21 Φεβρουαρίου 2013 καλύτερα να τα βάλεις σε ένα αρχείο του στυλ $_SESSION['role']=$arr['role']; if ($_SESSION['role']==1){insert/update/delete infos} elseif ($_SESSION['role']==2) {menu 2} elseif ($_SESSION['role']==3) {insert/update/delete infos, add user, insert/update/delete images} συνέχεια σελίδας επίσης αντί για md5 προτείνω να δεις πως υλοποιείται στην php η bcrypt
slevinkelevra Δημοσ. 21 Φεβρουαρίου 2013 Μέλος Δημοσ. 21 Φεβρουαρίου 2013 Επειδη μπερδευτηκα λιγο, ok, ας γινω λιγο πιο συγκεκριμενος Θελω διαφορετικους χρηστες με διαφορετικα δικαιωματα μονο για την συγκεκριμενη βαση δεδομενων με ονομα πχ. SlevinDataBase και τους πινακες μονο αυτης, οχι για ολη την postgresql. Στην Postgresql υπαρχει ήδη ένας χρήστης , ο default , ονοματι postgres, που ειναι στο τελος του "δεντρου" του pgAdmin. Αυτος ειναι για ολη την postgresql, οχι για την SlevinDataBase, σωστα? Στη SlevinDataBase υπαρχει ήδη ενας πινακας users με ονοματα, login, passwords αλλα και το πεδιο "role". Περα απο αυτο το πεδιο ομως πρεπει να καθοριστουν και χρηστες με τα δικαιωματα τους (μονο για τη βαση SlevinDataBase) ουτως ωστε ο visitor να κανει μονο select και ο επιπεδου 1 να κανει select αλλα και update. Αν δεν γινει αυτο, και ο visitor μπορει να κανει και update, τοτε υπαρχει πρακτικα τρ(ο)υπα ασφαλειας γιατι ουσιαστικα δεν υπαρχουν διαφορες στους χρηστες περα απο ενα απλο int. Δεν ξερω αν βοηθησα ή μπερδεψα. Δεν προσπαθω να διορθωσω την απαντηση κανενος. Εχω ξανασχοληθει με db , αλλα με mySql, οποτε τωρα, στο νεο σκηνικο, χαθηκα λιγο..... Ευχαριστω και παλι.
warlock9_0 Δημοσ. 21 Φεβρουαρίου 2013 Δημοσ. 21 Φεβρουαρίου 2013 η λογική που σκέφτεσαι θα δούλευε αν οι χρήστες γράφουν και τρέχουν ότι query θέλουν αυτοί αν τρέχουν έτοιμα queries που έχεις γράψει ήδη εσύ πατώντας κουμπιά κάνεις αυτό που είπα
slevinkelevra Δημοσ. 22 Φεβρουαρίου 2013 Μέλος Δημοσ. 22 Φεβρουαρίου 2013 ΟΚ παιδια, ευχαριστω πολυ για τις απαντησεις και το χρονο σας
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα