Create Logins On Log Shipping Databases

המקרה:

לקוח מבקש ליצור משתמש 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.

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

בהצלחה :-)

#IdanGoren #LogShipping #Login #User #עידןגורן

Featured Posts
Posts Are Coming Soon
Stay tuned...
Recent Posts
Archive
Search By Tags
No tags yet.
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square

Our Services Data

   Big Data & NoSQL

   Data Science

   Business Intelligence

   Relational Database

Software Development

   FullStsck Dev

   Data Engineering

   Spark Framework

   MicroServices

Products

  Tableau

About

   About Us       

   Careers

   Contact

Cloud

   AWS

   Azure

   GCP

Naya Technologies

71 Hanadiv st. Herzeliya, Israel 

Office: +972-(0)9-7465005

Fax: +972-(0)9-7465006

© 2018 by NAYA Technologies. All rights reserved | Privacy Policy | Terms & Conditions | Web Accessibility