Create Logins On Log Shipping Databases

January 21, 2018

המקרה:

לקוח מבקש ליצור משתמש SQL בשרת המשני שנמצא במערך Log Shipping במטרה לספק יכולת גישה לעובד החברה.

 

הבעיה:

בסיס הנתונים בשרת המשני נמצא במצב Read-Only, לכן לא ניתן יהיה ליצור את המשתמש ולמפות אותו לבסיס הנתונים הנ"ל.

 

להלן השגיאה שתתקבל:

 

הפתרון:

על מנת לפתרון את הבעיה נדרש לפעול באופן ובסדר הבא.

  • הערה:

במידה ונדרש לעשות שימוש באותו שם משתמש בשרת המשני עבור בסיסי נתונים נוספים וממקורות שונים, יש לחזור על סעיף 3 עבור כל אחד משרתי המקור.

 

 

צד שרת Secondary (משני):

  • יש ליצור את המשתמש בצד השרת המשני ללא מיפוי המשתמש ל-בסיס הנתונים וללא מתן הרשאה ספציפית.

  • שליפת SID המשתמש שיצרנו על מנת ליצור את אותו המשתמש בעל אותו ה-SID בצד השרת הראשי.

לשם כך נריץ את השאילתה הבאה ונעתיק את ה-SID שהתקבל (נשתמש בו בסעיף 3):

הערה:

רלוונטי רק כשמשתמשים בחשבון מסוג SQL Server Authentication.

בחשבון מסוג Windows Authentication הערך של ה-SID מסופק ע"י מערכת ה-Active Directory לכן שלב זה אינו הכרחי.

 

 

SELECT [name], convert(binary(16), sid) as [sid]

FROM sys.sql_logins

WHERE name = 'Your User Name'

 

להלן התוצאה שתתקבל:

 

צד שרת Primary (ראשי):

 

  • יצירת המשתמש בצד השרת הראשי ללא מיפוי המשתמש ל-בסיס הנתונים וללא מתן הרשאה ספציפית.

בשלב זה נזין את הערך SID שהתקבל מסעיף 2 במטרה ליצור את אותו אובייקט המשתמש.

 

 

USE [master];

CREATE LOGIN [Your User Name] WITH

   PASSWORD = 'Your Password'

   ,CHECK_EXPIRATION=OFF      --> Ignoring from local policy.

   ,CHECK_POLICY=OFF          --> Ignoring from local policy.

   ,SID = 0x1B6997BF79FCB34588C76D46EF5A4D66 --> Paste your SID.

 

 

  • כעת נספק למשתמש שיצרנו בשרת הראשי הרשאות ומיפוי לבסיס הנתונים הרלוונטי.

לדוגמה:

ע"י קוד

USE [Your Database]

GO

CREATE USER [Your User Name] FOR LOGIN [Your User Name]

GO

USE [Your Database]

GO

ALTER ROLE [Specific Permission] ADD MEMBER [Your User Name]

GO

 

ע"י GUI-

 

סנכרון המשתמש:

 

המשתמש שיצרנו יתעדכן באופן אוטומטי בבסיס הנתונים שבשרת המשני וזה הודות להגדרות המתזמן (Schedule) הקיים בג'ובים של ה-Backup Log (שרת ראשי) ו-Restore Log (שרת משני).

 

בכל אופן, על מנת לסנכרן את המשתמש במידי ניתן להריץ באופן יזום את הג'וב Backup Log ולאחר מכן את הג'וב Restore Log.

                       

 

זהו סיימנו את המלאכה !

כעת חשבון המשתמש שיצרנו זמין לשימושינו ולשימושו של עובד החברה J.

ניתן להבחין כי באופן אוטומטי החשבון קיבל את המיפוי וההרשאה הנדרשת בצד השרת המשני.

 

 

בהצלחה :-)

 

Please reload

Featured Posts

I'm busy working on my blog posts. Watch this space!

Please reload

Recent Posts

October 31, 2017

October 29, 2017

Please reload

Archive
Please reload

Search By Tags