Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server

- Πώς μπορούμε να αυξήσουμε την απόδοση στο target Replicat του Oracle GoldenGate με παραλληλία - 19 Μάρτιος 2025
- Πώς φτιάχνουμε χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group του SQL Server - 10 Φεβρουάριος 2025
- Πώς φτιάχνουμε Logon Trigger για να ελέγχουμε τους χρήστες που επιτρέπουμε να συνδεθούν σε Oracle Database - 13 Ιανουάριος 2025
Όταν φτιάχνουμε καινούργιους χρήστες σε βάσεις δεδομένων που ανήκουν σε Always On Availability Group στον SQL Server θέλουμε να λειτουργούν ακόμα και στην περίπτωση που γίνουν failover σε Secondary node, όμως όταν φτιάχνουμε ένα καινούργιο login σε ένα SQL Server instance δεν δημιουργείτε αυτόματα στα Secondary nodes. Έτσι σε αυτό το άρθρο θα δούμε πώς πρέπει φτιάχνουμε τα logins.
Πώς μεταφέρουμε τα logins σε Secondary Nodes
Αφού φτιάξουμε ένα SQL Login στο Primary node τρέχουμε το παρακάτω query στο Primary node βάζοντας στο where το όνομα του login που φτιάξαμε ώστε να μας δημιουργήσει το DDL script που φτιάχνει το login:
SELECT N'CREATE LOGIN ['+sp.[name]+'] WITH PASSWORD=0x'+ CONVERT(nvarchar(max), l.password_hash, 2)+N' HASHED, '+ N'SID=0x'+CONVERT(nvarchar(max), sp.[sid], 2)+N';', N'ALTER LOGIN ['+sp.[name]+'] WITH PASSWORD=0x'+CONVERT(nvarchar(max), l.password_hash, 2)+N' HASHED UNLOCK ,CHECK_POLICY=OFF;' FROM master.sys.server_principals AS sp INNER JOIN master.sys.sql_logins AS l ON sp.[sid]=l.[sid] WHERE sp.name = 'test'; -- Το αλλάζουμε ανάλογα με το όνομα του χρήστη που θέλουμε να μεταφέρουμε
Αφού το τρέξουμε επιλέγουμε την πρώτη στήλη με το αποτέλεσμα και τρέχουμε το DDL στα Secondary nodes για να δημιουργηθεί και εκεί το login:

Πώς μεταφέρονται τα δικαιώματα
Δεν ξεχνάμε ότι αφού δημιουργήσουμε τα logins σε όλα τα Nodes ότι δικαιώματα δώσουμε στο Primary node σε επίπεδο βάσης δεδομένων θα μεταφερθούν αυτόματα και στα Secondary nodes π.χ. db_owner, db_datareader, db_datawriter κ.τ.λ. , όμως τα δικαιώματα που είναι σε επίπεδο instance π.χ. sysadmin δεν μεταφέρονται αυτόματα.
Τι κάνουμε σε περίπτωση που αλλάξουμε τον κωδικό σε SQL Logins
Σε περίπτωση που αλλάξουμε τον κωδικό ενός SQL Login στο Primary node, τότε τρέχουμε τα αποτελέσματα της δεύτερης στήλης του script που κάνει ALTER LOGIN με τον καινούργιο κωδικό στα Secondary Nodes.