SQL Server 2005 Schemas

Έχουν δημοσιευτεί 11 Δεκεμβρίου 06 11:11 πμ | KelMan 

Ένα νέο χαρακτηριστικό στον SQL Server 2005 είναι τα Schemas. To Schema είναι κάτι σαν το namespace στο .ΝΕΤ Framework. Κάθε database object δημιουργείται κάτω από ένα schema και το πλήρες reference στο object (το "fully qualified name" που λέμε) γίνεται χρησιμοποιώντας όνομα του τύπου server.database.schema.object (πχ SERVER01.AdventureWorks.Production.Product)

Το παραπάνω μοιάζει με το fully qualified name που έχουμε στον SQL Server 7 & 2000 ωστόσο η ομοιότητα είναι μόνο οπτική. Στον 7 & 2000, το schema προσδιορίζεται από τον δημιουργό του object, υπάρχει δηλαδή άμεση συνάφεια μεταξύ user και schema. Στον 2005, τα schemas είναι ανεξάρτητα από τους users. Αυτή η οργάνωση έχει διάφορα πλεονεκτήματα όπως:

  • Λιγότερα προβλήματα με τα object ownerships
  • Απλουστευμένο μοντέλο security καθώς μπορούν να εκχωρηθούν δικαιώματα είτε σε schema level, είτε σε object level
  • Ευκολότερη διαχείριση καθώς αν διαγραφεί ένας χρήστης δεν αφήνει ορφανά objects

Διαδικασία Name Resolution

Προκειμένου να καταλάβει ο SQL Server σε ποιο object αναφερόμαστε σε κάθε statement, χρησιμοποιεί μια διαδικασία που ονομάζεται name resolution. Για παράδειγμα, ας υποθέσουμε ότι η βάση περιέχει δύο objects Sales.Product και Production.Product. Αν δεν προσδιορίσουμε το fully qualified name και πούμε "SELECT * FROM Products" τότε ο Server θα εξετάσει αν ο χρήστης που έδωσε το query έχει default schema και αν υπάρχει πίνακας Products σε αυτό. Αν δεν υπάρχει default schema θα ψάξει το object στο dbo schema. Μπορούμε να κατασκευάσουμε ένα schema με την εντολή CREATE SCHEMA:

CREATE SCHEMA Production

Ενώ μπορούμε να δώσουμε default schema σε κάποιον χρήστη με την εντολή ALTER USER:

ALTER USER Manos WITH DEFAULT_SCHEMA = Production

 

Δημοσίευση στην κατηγορία:

Σχόλια:

Χωρίς Σχόλια
Έχει απενεργοποιηθεί η προσθήκη σχολίων από ανώνυμα μέλη

Search

Go

Συνδρομές