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

 

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

Authetication σε SQL Server

Îåêßíçóå áðü ôï ìÝëïò koslyr. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 11-05-2012, 10:30. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-05-2012, 18:13 70218

    Authetication σε SQL Server

    Εχω μια εφαρμογή με μια βάση δεδομένων σε MS-SQL Server 2008 R2. H βάση πρόκειται να εγκατασταθεί σε ένα υφιστάμενο cluster environment που αποτελείται από δυο ξεχωριστικά φυσικά μηχανήματα και εξυπηρετούν μόνο τον SQLServer. Σε αυτό το cluster ηδη φιλοξενούνται και άλλες βάσεις της εταιρείας που χρησιμοποιούνται για άλλες ξεχωριστές web εφαρμογές.
    Στην συγκεκριμένη νέα βάση που πρόκειται να χρησιμοποιηθεί υπάρχει η απαίτηση λόγω των κρίσιμων/απόρρητων στοιχειων που θα περιέχει να έχει πρόσβαση μέσω του Management-Studio μόνο ένας χρήστης που δεν θα πρέπει να είναι οι υπάρχοντες users των Windows & Database Administrator.
    To OS είναι Windows Server 2003.
    Υπάρχει η δυνατότητα υλοποιήσης αυτού του σεναρίου;
  •  10-05-2012, 13:02 70228 σε απάντηση της 70218

    Απ: Authetication σε SQL Server

    Σε mixed mode security στον Sql ο sa είναι ο θεός οπότε είναι αδύνατον να του κόψεις την πρόσβαση.

    Σε NT Security μπορείς να κόψεις την πρόσβαση στους χρήστες αλλά όχι σε όσους DB Admins(sa) έχουν πρόσβαση στο μηχάνημα.

    Η μόνη λύση νομίζω είναι νέο μηχάνημα η VM που να έχει στημένο sql με Sql Authentication security με έναν χρήστη μόνο να έχει πρόσβαση(sa).

     

  •  11-05-2012, 10:30 70231 σε απάντηση της 70228

    Απ: Authetication σε SQL Server

    Νομίζω ότι υπάρχει ένα στοιχείο υπερβολής εδώ, πέρα από το γεγονός ότι η ίδια η ερώτηση είναι λάθος. Το θέμα δεν έχει να κάνει τίποτε με authentication (πως κάνει κάποιος login) αλλά με λίγο με authorization (τί δικαιώματα έχει) και περισσότερο με auditing, encryption και το πως δουλεύει η εταιρεία. Και το σίγουρο είναι ότι ο SQL Server χρησιμοποιείται με ασφάλεια σε εταιρικά περιβάλλοντα χωρίς λύσεις του στυλ "φτιάξε ξεχωριστό μηχάνημα".

    Καταρχήν, μπορείς άνετα να ΜΗΝ δώσεις πρόσβαση στη βάση στους local ή domain admins. Μάλιστα είναι πολύ ευκολότερο να διαχειριστείς τους διάφορους ρόλους όταν χρησιμοποιείς Windows accounts και groups, παρά όταν βασίζεσαι στο SQL Authentication. 
     Αυτό που ΔΕΝ μπορείς να κάνεις, είναι να μην έχεις καν DBA ή να αρχίσεις να μιλάς για περιορισμούς στους DBA που αν το σκεφτείς θα κάνουν αδύνατη τη χρήση της βάσης. Κάποιος στο τέλος θα πρέπει να μπορεί να δώσει τα κατάλληλα δικαιώματα στους άλλους. Δεν είναι υποχρεωτικό αυτό το account να λέγεται sa (ο οποίος είναι by default απενεργοποιημένος).

    Μπορείς να δώσεις διαφορετικούς ρόλους σε διαφορετικά άτομα. Δεν σημαίνει ότι επειδή κάποιος είναι DBA πρέπει να έχει ντε και καλά δικαιώματα server adminstrator - αν δουλειά του είναι να κάνει backup, του αρκούν τα κατάλληλα permissions. Ούτε σημαίνει ότι επειδή κάποιος έχει αυξημένα δικαιώματα στο server τα έχει και στη βάση. Άλλα τα δικαιώματα του server, άλλα της κάθε βάσης. Αρκεί να καθορίσεις σωστά τα δικαιώματα και τους ρόλους για να πετύχεις αυτό που θέλεις. Τα permissions που μπορείς να ορίσεις φτάνουν σε πολύ μεγάλη λεπτομέρεια

    Αυτό απαιτεί αρκετή οργάνωση από πλευράς εταιρείας. Κάποιος θα πρέπει να έχει το ρόλο του security administrator για να να μπορεί να δίνει στους DBAs τα κατάλληλα δικαιώματα στην κάθε βάση, χωρίς ο ίδιος να έχει δικαιώματα πέρα από το security. Οι ενέργειες αυτές θα πρέπει να γίνονται audit για να είναι βέβαιο ότι ο security admin δεν έδωσε τίποτε περίεργα δικαιώματα. Και φυσικά, κάποιος θα πρέπει να ελέγχει τα audits για να δει αν έγινε τίποτε περίεργο.

    Αν η εταιρεία θέλει ντε και καλά να προστατέψει τα δεδομένα από όλους, μπορεί να προχωρήσει ένα βήμα παραπέρα και να ενεργοποιήσει encryption. Στην Enterprise έκδοση το encryption είναι γίνεται αυτόματα σε επίπεδο IO ενώ για τις μικρότερες εκδόσεις θα πρέπει η κάθε εφαρμογή να χρησιμοποιήσει τις κατάλληλες εντολές.. Βέβαια αυτό είναι ακριβό λόγω licensing και απαιτεί επιπλέον διαχείριση γιατί απαιτούνται certificates και η αντίστοιχη διαχείριση. Αν πραγματικά όμως σε ενδιαφέρει να μην μπορεί να διαβάσει κανείς τα δεδομένα, ακόμα και αν πάρει το σκληρό και φύγει, είναι μονόδρομος.

    Γενικά η ασφάλεια μίας βάσης σε εταιρικό περιβάλλον δεν είναι θέμα το οποίο μπορεί να απαντηθεί ή να περιγραφεί σε 1-2 προτάσεις, ούτε μπορεί κάποιος να σου πει "αυτό θα κάνεις" σαν τυφλοσούρτη. Τα Books Online του SQL Server περιλαμβάνουν αρκετά κεφάλαια που καλύπτουν την ασφάλεια από το επίπεδο του λειτουργικού, του δικτύου, μέχρι το επίπεδο μεμονομένων permissions. 

    Από εκεί και πέρα πρέπει να δεις τί πραγματικά θέλει η εταιρεία σου, τί θέλει να πληρώσει (σε licensing και διαχειριστικά κόστη) και πόσο τελικά αξίζει το απόρρητο που απαιτεί. Ίσως τελικά να αρκεί το auditing, σε συνδυασμό με κάποια εργαλεία όπως το SQL Secure της Idera για αυτοματοποίηση των ελέγχων. 

    Θα άξιζε επίσης να σκεφτείτε τη λύση του SQL Azure. Τα data centers της Microsoft έχουν πιστοποιήσεις που απαιτούν auditing και confidentiality σε πολύ υψηλότερο επίπεδο απ' ότι μπορεί να εγγυηθεί ακόμα και τράπεζα (κάποιες τράπεζες ακόμα ΔΕΝ έχουν πάρει πιστοποίηση FISMA), ενώ φυσικά το κόστος είναι πολύ μικρότερο από το να υλοποιήσεις εσύ όλη αυτή την υποδομή και διαδικασίες. 




    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems