ব্যাকআপ -> অপারেশন পুনরুদ্ধার করার পরে ব্যবহারকারীর অনুমতিগুলি মেস আপ হয়েছে


11

আমাকে বেশ কয়েকটি এসকিউএল সার্ভার ২০০৮ ডাটাবেসগুলিকে আমাদের নতুন ডিবি সার্ভারে সরাতে হয়েছিল তাই আমি সেগুলি সমস্ত ব্যাক আপ করেছিলাম (ফাইলগুলি .bak করতে), নতুন ফাইলগুলিতে এই ফাইলগুলি অনুলিপি করে পুনরুদ্ধার করেছি (সমস্ত এসকিউএল ম্যানেজমেন্ট স্টুডিও ব্যবহার করে সম্পন্ন হয়েছে)।

সমস্ত ঠিক আছে তবে এখন আমি দেখতে পেয়েছি যে আমি পুরানো আরডিবিএমএসে কাজ চালিয়ে যাওয়া এসকিউএল সার্ভার অ্যাকাউন্ট ব্যবহার করে কোনও ডাটাবেসে লগইন করতে পারি না। আমার উইন্ডোজ-অনুমোদনযুক্ত লগইনটি ঘটনাক্রমে এখনও দুর্দান্ত কাজ করে works

আমার এই ধারণাটি ছিল ব্যবহারকারী এবং অনুমতিগুলি নির্বিঘ্নে নতুন ডাটাবেস সার্ভারে নকল করা হবে তবে মনে হয় কোথাও কিছু ভুল হয়েছে wrong আমি মন্তব্য / পরামর্শ / সাহায্যের অফারগুলি প্রশংসা করব ;-)

উত্তর:


7

আমি দেখতে পেয়েছি আপনি ইতিমধ্যে আপনার সমস্যার সমাধান খুঁজে পেয়েছেন, আপনার মূল প্রশ্নের মধ্যে একটি জিনিস আমি লক্ষ্য করেছি যে আপনি এখনও পুরানো সার্ভারটিতে অ্যাক্সেস পেয়েছিলেন।

এসও সম্পর্কিত নিম্নলিখিত প্রশ্নের একই ধরণের সমস্যা ছিল এবং এতে ব্যবহারকারীের অনুমতি তৈরি করার জন্য একটি স্ক্রিপ্ট সহ একটি মাইক্রোসফ্ট নিবন্ধের লিঙ্ক অন্তর্ভুক্ত রয়েছে।

/programming/461385/restoring-a-backup-to-a-different-server-user-permissions

(এই প্রশ্নের জন্য উত্স তালিকাভুক্ত http://support.microsoft.com/kb/918992 )

দেখে মনে হচ্ছে উইন্ডোজ প্রমাণীকরণ থেকে মিক্সড মোড প্রমাণীকরণে সার্ভার সেটিংটি পরিবর্তন করা আপনার সমস্যার সমাধান করেছে, তবে কেবল যদি সমস্যাটি সম্পূর্ণরূপে সমাধান না করে তবে আমি ভাবতাম এটি কার্যকর হতে পারে।


আমি নিশ্চিত যে এই ব্যবহারকারীর / অনুমতিগুলির বিষয়ে এসকিউএল সার্ভারের সাথে আমি প্রথম লড়াই করব না সুতরাং আমি প্রবন্ধটি উত্তরোত্তর জন্য বুকমার্ক করব। পোস্ট করার জন্য অনেক ধন্যবাদ।
5

6

এটি "অনাথ ব্যবহারকারী" হিসাবে পরিচিত। এটি ঠিক করার 2 উপায় এখানে রয়েছে

  1. যদি আপনি পারেন তবে "লগইনসোর্স" হিসাবে মূল মাস্টার ডাটাবেসটি পুনরুদ্ধার করুন এবং sys.server_prصولগুলিতে সমস্ত এসকিউএল সার্ভার এবং উইন্ডোজ লগইন উত্পন্ন করার জন্য পর্যাপ্ত তথ্য রয়েছে। সেটি হচ্ছে, এসআইডি এবং এনক্রিপ্ট করা পাসওয়ার্ড

  2. আপনি যদি কেবল উইন্ডোজ লগইন ব্যবহার করেন তবে স্ক্রিপ্ট তৈরি করতে আপনি প্রতি ডাটাবেসটি চালাতে পারেন

লিপি:

SELECT
    'CREATE LOGIN [' + SUSER_SNAME(sid) + '] FROM WINDOWS'
FROM
    sys.database_principals
WHERE
    [type] IN ('G', 'U')

আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ - আমাদের উইন্ডোজ অ্যাকাউন্টগুলি প্রশাসনের উদ্দেশ্যে ব্যবহার করার সময় আমার ওয়েব অ্যাপ্লিকেশনটি এসকিউএল লগইন ব্যবহার করে। আপনার পরামর্শ অনুসারে 'লগইনসোর্স' হিসাবে পুনরুদ্ধার করার কোনও উপায় আমি দেখতে পাচ্ছি না - আপনি দয়া করে বিস্তারিত বলতে পারেন? আমি আশা করছি ম্যানেজমেন্ট স্টুডিও ব্যবহার করে এগুলি করা সম্ভব?
5arx

পুনশ্চ. আমি এই দস্তাবেজটি অনুসরণ করেছি: সমর্থন.microsoft.com/kb/274188 এবং সমস্ত স্ক্রিপ্টগুলি (দৃশ্যত) সফলভাবে চালিত করেছি ran তবে কিছুই বদলায়নি।
5arx

5

পুনরুদ্ধার করার পূর্বে আপনি ব্যবহারকারী এবং অনুমতিগুলি স্ক্রিপ্ট আউট করবেন। যদি এটি না ঘটে থাকে, তবে আপনাকে তথ্যের পরে জিনিসগুলি ঠিক করতে হবে এবং সম্ভাবনাগুলি হ'ল কিছু মিস হবে তবে আপনি সেখানে প্রায় 90% পথ পেতে সক্ষম হবেন।

নতুন সার্ভারে যদি একই লগইনগুলি উপস্থিত থাকে তবে আপনাকে যা প্রথম সনাক্ত করতে হবে তা হ'ল। যদি সেগুলি না হয় তবে নতুন সার্ভারে লগইনগুলি তৈরি করা ঠিক আছে কিনা তা আপনার খুঁজে পাওয়া উচিত। কখনই ধরে নিবেন না যে এগুলি তৈরি করা উচিত, তাদের কেন প্রথম স্থানে ছিল না এমন কোনও যুক্তিসঙ্গত কারণ থাকতে পারে। এরপরে সিসিউসার্স টেবিলটি খনন করে আপনি এগুলি তৈরি করতে পারেন।

নিম্নলিখিত অনুরুপ কিছু চালিয়ে আপনি অনাথ ব্যবহারকারীদের ঠিক করতে পারেন:

DECLARE @username varchar(25), @loginsid varbinary(85)
DECLARE fixusers CURSOR
FOR
SELECT UserName = name 
    FROM sysusers
    WHERE issqluser = 1 
    and (sid is not null and sid <> 0x0)
    and suser_sname(sid) is null
    and name in (select name from master..syslogins)
    ORDER BY name
OPEN fixusers
FETCH NEXT FROM fixusers
INTO @username
WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC sp_change_users_login 'update_one', @username, @username

    FETCH NEXT FROM fixusers
    INTO @username
END CLOSE fixusers
DEALLOCATE fixusers 

এই কোডটি এসকিউএল ২০০৮ এর জন্য কাজ করবে তবে এটি এসকিউএল ২000 এর জন্য পশ্চাদপটে সামঞ্জস্যপূর্ণ বলে লেখা হয়েছিল।


স্ক্রিপ্ট জন্য ধন্যবাদ। আমি কি ধরে নিতে পারি ম্যানেজমেন্ট স্টুডিওতে এটি করার কোনও উপায় নেই? এছাড়াও, কিছু লোক পরামর্শ দিচ্ছে যে আমি ডিবি-স্তরের ব্যবহারকারীদের মুছুন এবং পুনরায় তৈরি করুন - এটি কি প্রস্তাবিত?
5arx

এটি ধরে নিয়েছে লগইনগুলি ইতিমধ্যে বিদ্যমান এবং কেবল এসআইডিগুলির সাথে মেলে
জিবিএন


5 ইয়ারেক্স - এসএসএমএসে এটি করার কোনও উপায় নেই। যেমনটি আমি বলেছি, একটি আদর্শ পরিস্থিতিতে আপনি পুনরুদ্ধারের আগে আপনার অনুমতিগুলি স্ক্রিপ্ট করে ফেলতেন। এই মুহুর্তে আপনাকে হয় হাতে পুনরায় তৈরি করতে হবে বা নিজে নিজে জিনিসগুলি টুকরো টুকরো করার চেষ্টা করতে হবে। আমি যদি আপনি ছিলাম তবে আমি পুরানো ডিবি পুনরুদ্ধার করব, অনুমতিগুলি স্ক্রিপ্ট করবো, অন্য সার্ভার থেকে পুনরুদ্ধার করব এবং তারপরে আপনার অনুমতিগুলি আবার করব red
এসকিউএলরক স্টার

"আপডেট_অন: বর্তমান ডাটাবেসে নির্দিষ্ট ব্যবহারকারীকে বিদ্যমান এসকিউএল সার্ভার লগইনে লিঙ্ক করে user ব্যবহারকারী এবং লগইন অবশ্যই নির্দিষ্ট করতে হবে password পাসওয়ার্ড অবশ্যই নাল বা নির্দিষ্ট না হওয়া উচিত" " সুতরাং এটি ধরে নিয়েছে লগইনগুলি ইতিমধ্যে বিদ্যমান।
জিবিএন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.