Πώς δημιουργούμε μία απλή βάση δεδομένων σε Azure SQL Database
- Πώς ενεργοποιούμε το Unified Auditing σε Oracle Database - 7 Οκτώβριος 2024
- Τι είναι η PostgreSQL και πως κάνουμε μία πλήρης εγκατάσταση - 2 Σεπτέμβριος 2024
- Πώς ρυθμίζουμε το replication του GoldenGate ώστε να διαβάζει από το Standby του Oracle Data Guard - 2 Αύγουστος 2024
Σε προηγούμενο άρθρο έιχαμε δει τι είναι μία Azure SQL Database και τις διαφορές που έχει ανάμεσα στα SQL managed instances και SQL elastic pools.
Στο άρθρο θα αναλύσουμε πως δημιουργούμε μία Simple Azure SQL Database βήμα βήμα και το τι επιλογές έχουμε κατά την δημιουργία της.
Πριν όμως συνεχίσεις να διαβάζεις το άρθρο αν δεν είσαι εξοικειωμένος με το Azure θα πρέπει πρώτα να διαβάσεις αυτό το άρθρο που είναι αφιερωμένο στις υποδομές του Azure. Θα χρειαστεί γιατί εξηγεί διάφορες έννοιες που θα συναντήσουμε πιο κάτω όπως Subscriptions και Resource Groups.
Το παράδειγμα
Για αρχή συνδεόμαστε στο Azure Portal . Εκεί επιλέγουμε το Μenu, SQL Databases (από τα favorites) και Create.
Είτε αλλιώς Menu, Create a resource, Databases , SQL database.
Ορίζουμε το Subscription που έχουμε την χρέωση (στην περίπτωση μου είχα ένα οπότε το έβαλε μόνο του).
Το Resource Group είναι ουσιαστικά ένας κουβάς με τις υποδομές μας οπότε, βάζουμε ένα που έχουμε ήδη ή φτιάχνουμε ένα καινούργιο. Για καινούργιο επιλέγουμε Create New απλά συμπληρώνοντας το Data Center που θα ανήκει (στην περίπτωσή μας West Europe).
Βάζουμε το όνομα που θέλουμε να έχει η βάση δεδομένων.
Αν δεν έχουμε φτιάξει ήδη έναν logical SQL Server επιλέγουμε Create New. Εκεί θα πρέπει να του δώσουμε ένα μοναδικό όνομα, τον local admin και σαν Location θα βάλουμε πάλι το Data Center που θέλουμε να ανήκει (δηλαδή πάλι West Europe).
Το SQL elastic pool το αφήνουμε No, αφού στην συγκεκριμένη περίπτωση δεν θέλουμε να διαχειρίζεται πολλές βάσεις με κοινά resources.
Ώρα να διαλέξουμε τα resources που θέλουμε να έχει η βάση δεδομένων μας.
Επιλέγοντας Configure στο Compute + storage θα μας εμφανιστεί η παρακάτω εικόνα. Εκεί μπορούμε να επιλέξουμε ένα κλασικό μοντέλο χρέωσης με DTU (π.χ. basic για μία βάση μέχρι 2gb με minimum resources), Business Critical αν θέλουμε να έχουμε υπηρεσία με υποδομή αντίστοιχη με Availability Group ή να αφήσουμε το General Purpose που είναι υποδομή σαν Failover Cluster Instance.
Πιο αναλυτικά οι διαφορές τους υπάρχουν στο άρθρο που αναφέραμε στην αρχή.
Πέρα από το μοντέλο θα δούμε ότι μπορούμε να επιλέξουμε το μέγεθος της βάσης και τα Cores που θα έχει. Στο compute tier μια πολύ καλή λύση αν η βάση μας θα γίνεται προσπέλαση μόνο κάποιες ώρες μέσα στην μέρα είναι να επιλέξουμε το Serverless μοντέλο. Με το συγκεκριμένο μοντέλο αν για κάποια ώρα δεν υπάρχει activity με ενεργά connections δεν θα χρεωνόμαστε καθώς η βάση θα είναι down*, αλλά θα χρεωνόμαστε με την ώρα (με το δευτερόλεπτο αν θέλουμε να είμαστε ακριβής) που είναι online η βάση.
*Όταν προσπαθήσουμε να ξανασυνδεθούμε στη βάση, μετά από περίπου 1 λεπτό θα ενεργοποιηθεί μόνη της.
Στη συνέχεια διαλέγουμε πως θα έχουμε πρόσβαση στη βάση. Με το Private endpoint θα έχουμε μόνο δημιουργόντας έναν ιδιωτικό κόμβο στη βάση από συγκεκριμένες εφαρμογές, VPN κ.α. Στην περίπτωση μας ήθελα να έχω πρόσβαση μέσω Internet οπότε επέλεξα Public endpoint.
Με την επιλογή Add current client IP address ουσιαστικά προσθέτει την IP που είμαστε στο Azure Portal αυτή την στιγμή ως exception στο Firewall ώστε να μπορούμε να συνδεθούμε.
Στην επόμενη καρτέλα βάζουμε το collation που θέλουμε. Στην περίπτωση μας Greek_CI_AS.
Μπορούμε να προσθέσουμε tags ώστε να μπορούμε να αναζητήσουμε αν πρόκειται για κάτι για Development ή είναι για παραγωγικό σύστημα.
Στο τέλος μας εμφανίζει ένα Review με ότι έχουμε επιλέξει πριν πατήσουμε το Create. Μας δίνει και την επιλογή να το κατεβάσουμε ως template για να μπορούμε να ανεβάσουμε μία αντίστοιχη βάση οποιαδήποτε στιγμή θέλουμε στο μέλλον (DevOps).
Αφού ολοκληρωθεί η δημιουργία του SQL Database θα μπορούμε να πάμε στο resource της βάσης. Εκεί μπορούμε να δούμε το servername που θα είναι το hostname που θα συνδεόμαστε. Επίσης επιλέγοντας το set server firewall μπορούμε να δούμε που επιτρέπουμε την πρόσβαση.
Εκεί θα δούμε ότι από τις επιλογές που δώσαμε όταν την δημιουργήσαμε όπως είπαμε και πριν, προστέθηκε η IP του μηχανήματος που είμασταν συνδεδεμένοι στο Azure Portal. Αν θα θέλαμε να μπορεί οποιαδήποτε συσκευή να συνδεθεί μέσω Internet απευθεία στη βάση να βάλουμε Start IP 0.0.0.0 και End IP 255.255.255.255.
Πως συνδεόμαστε στην Azure SQL Database
Οπότε πλέον μπορούμε να συνδεθούμε μέσω SQL Server Management Studio ή Azure Data Studio. Για να συνδεθούμε στη βάση απλά βάζουμε το local admin που φτιάξαμε όταν δημιουργήσαμε τον logical SQL Server που κάνει host τη βάση (στο create sql database, στην εικόνα 2).
Αν θέλουμε να φτιάξουμε ένα login στη βάση που να έχει δικαίωμα read only θα πρέπει απλά να τρέξουμε με ένα query στη βάση το παρακάτω:
CREATE LOGIN [xristis] WITH PASSWORD=N'kwdikos' GO CREATE USER xristis FROM LOGIN xristis GO EXEC sp_addrolemember 'db_datareader', 'xristis';
Θα μπορούσαμε αυτό το login να το κάνουμε χρήση για παράδειγμα σε κάποιο odbc connection. Τα connection strings θα δούμε ότι υπάρχουν έτοιμα στην καρτέλα Connection strings του resource. Το μόνο που θα πρέπει να αλλάξουμε είναι να βάλουμε το ανάλογο username και password.
Μπορούμε όμως να συνδεθούμε και με λογαριασμό που έχουμε φτιάξει στο Azure Active Directory. Για να δώσουμε δικαιώματα (RBAC) σε λογαριασμούς το ορίζουμε στο Access Control (IAM). Μπορώ όμως και να ορίσω τον λογαριασμό μου απευθείας ως Active Directory Admin όπως βλέπουμε στην κάτωθι εικόνα:
Αυτή την φορά ας δοκιμάσουμε την σύνδεση από Azure Data Studio (μπορούμε και με το SSMS). Θα επιλέξουμε ως Authentication type Azure Active Directory – Universal with MFA support και απλά συνδεόμαστε με τον λογαριασμό μας στο Azure AD.
Για τέλος ας δοκιμάσουμε να συνδεθούμε και από command prompt με sqlcmd απευθείας με την παρακάτω εντολή:
sqlcmd -S dpgr-srv.database.windows.net -ddpgr_db -Usmatzouranis@dataplatform.gr -G