Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

bypass SQL Trigger

Îåêßíçóå áðü ôï ìÝëïò thodoros. Τελευταία δημοσίευση από το μέλος ekt στις 20-04-2008, 14:54. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-02-2008, 23:52 40220

    bypass SQL Trigger

    Έχω μία βάση δεδομένων σε SQL Server 2000. Σε αυτή υπάρχει ένα MainTable, στο οποίο υπάρχει κάποιο trigger, που δεν επιτρέπει τη διαγραφή εγγραφών που έχουν καταχωρηθεί. Ο λόγος που το έκανα είναι, να περιορίσω τη δυνατότητα των χρηστών να αλλάζουν τα δεδομένα. Κάποιες φορές όμως, εγώ - ως διαχειριστής της βάσης - θέλω να διαγράψω κάποια εγγραφή, γιατί ο χρήστης έκανε, για παράδειγμα λάθος. Έλα όμως που το trigger ισχύει και για εμένα!!

    Υπάρχει κάποιος τρόπος, ώστε το trigger να μην ενεργοποιείται για συγκεκριμένο username? Έψαξα στο google, αλλά δεν βρήκα κάτι.

    Ευχαριστώ.


    Live fast, die young
  •  17-02-2008, 00:06 40222 σε απάντηση της 40220

    Απ: bypass SQL Trigger

    Και γιατί επέλεξες αυτή την λύση για να προστατέψεις το table? Υπάρχουν τόσες άλλες...


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  17-02-2008, 18:04 40233 σε απάντηση της 40220

    Απ: bypass SQL Trigger

    Ο Pak έχει δίκιο. Αν θέλεις να περιορίσεις τί μπορούν να κάνουν οι χρήστες στην εφαρμογή σου έχεις πολλές καλύτερες επιλογές.

    • Μπορείς να θέσεις τα κατάλληλα permissions απευθείας στον πίνακα, π.χ. με μία DENY DELETE ON MyTable To SomeUser
    • Αν δεν μπορείς να πετύχεις ακριβώς αυτό που θέλεις με τα permissions, π.χ. θέλεις να επιτρέπεις το DELETE μόνο σε συγκεκριμένες περιπτώσεις, μπορείς να αφαιρέσεις τα δικαιώματα που θέλεις με τη DENY και μετά να δημιουργήσεις stored procedures που θα κάνουν αυτό που θέλεις. Μετά δίνεις δικαιώματα στους χρήστες να εκτελέσουν το stored procedure αντί για τον πίνακα απευθείας.

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-04-2008, 14:54 41640 σε απάντηση της 40220

    Απ: bypass SQL Trigger

    Θα συμφωνήσω με τους παραπάνω συμπληρώνοντας οτι δεν υπάρχει δυνατότητα παράκαμψης του trigger ανα χρήστη.Η μόνη λύση είναι να χρησιμοποιήσεις script για drop και create του trigger εφόσον την ώρα που δουλεύεις δεν εργάζονται οι άλλοι

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems