এক ডাটাবেস ব্যবহারকারীর একাধিক সার্ভার লগইন ম্যাপিং


11

এটি একটি মূ .় প্রশ্ন বলে মনে হচ্ছে তবে কিছু গবেষণা সত্ত্বেও আমি কেবলমাত্র এই সম্পর্কিত (সম্ভবত ভুল সংজ্ঞা ব্যবহারের কারণে) সম্পর্কিত কোনও তথ্য খুঁজে পেতে পারিনি।

একক ডাটাবেস ব্যবহারকারীর (যা একটি ডাটাবেসের ভূমিকার সদস্য হয়ে অনুমতি নিয়েছে) একাধিক সার্ভার লগইন (এসকিএল সার্ভার প্রমাণীকরণ) লগ করা সম্ভব?

আমার কয়েক ডজন বর্গক্ষেত্র লগইন আছে (এসকিউএল সার্ভার প্রমাণীকরণ) যা একটি কেন্দ্রীয় ডাটাবেস থেকে একটি সেটিংস পড়তে হবে এবং আমি প্রতিটি লগইনের জন্য একটি নিজস্ব ডিবি ব্যবহারকারী তৈরি করার চেয়ে লক্ষ্য ডাটাবেসে এই সমস্ত লগইনগুলিকে ম্যাপ করব।

যদি হ্যাঁ, সঠিক টি-এসকিউএল সিনট্যাক্সটি কী হবে?


আপনি যখন "সার্ভার লগইনস" বলছেন তখন আপনার অর্থ উইন্ডোজ অ্যাকাউন্ট বা এসকিউএল সার্ভার অ্যাকাউন্টগুলি?
ফিল সুমনার

আমি এসকিউএল সার্ভার অ্যাকাউন্টগুলির বিষয়ে কথা বলছি। প্রশ্নটি স্পষ্ট করতে সম্পাদনা করবে
leepfrog

আপনি কীভাবে একটি তৈরি করেন ROLEএবং তারপরে ব্যবহারকারীদের ভূমিকার সাথে যুক্ত হন। এইভাবে আপনি ভূমিকার জন্য অনুমতি প্রদান করুন। এটি আপনাকে সুরক্ষা ব্যবস্থা আরও উন্নত করতে সহায়তা করবে। এছাড়াও, এসকিএল সার্ভার সংস্করণটি কী - ২০০৮আর ২, ২০১২?
কিন শাহ

উত্তর:


19

পরিভাষা সম্পর্কে নিশ্চিত করা প্রথম। একটি লগইন একটি উদাহরণ স্তরের সুরক্ষা অধ্যক্ষ ( sys.server_principals) এবং একজন ব্যবহারকারী একটি ডাটাবেস স্তর সুরক্ষা অধ্যক্ষ ( sys.database_principals)। তারা এসআইডি (সুরক্ষা শনাক্তকারী) দ্বারা একসাথে যোগদান করেছে। যদি আপনি উপরের সিস্টেমের ভিউগুলিতে সন্ধান করেন তবে আপনি দেখতে পাবেন কীভাবে তারা এসআইডি দ্বারা 1: 1 ফর্ম্যাটে একসাথে যোগদান করেছেন। এটি একটি ডাটাবেসে 1 জনকে লগইন করুন। একটি লগইন একাধিক ব্যবহারকারী থাকতে পারে তবে তাদের অবশ্যই বিভিন্ন ডাটাবেসে থাকতে হবে।

সুতরাং আপনার প্রতিটি লগইনের জন্য আপনার ডাটাবেসে একটি ব্যবহারকারী তৈরি করতে হবে যা আপনি এটিতে অ্যাক্সেস রাখতে চান। এটি একটি সহজ যথেষ্ট কমান্ড।

CREATE USER [UserName] FROM LOGIN [LoginName]

সেখান থেকে আপনি আপনার সমস্ত ব্যবহারকারীকে একটি একক (বা একাধিক) ভূমিকাতে রাখতে পারেন। ভূমিকা হল এমন একটি ধারক যা প্রতিটি ব্যবহারকারীর (ডাটাবেসের ভূমিকার জন্য) বা লগইন (উদাহরণস্বরূপ ভূমিকা) এর সাথে অনুমতিগুলি নিয়ে থাকে এবং সেই অনুমতিগুলি ভাগ করে। এমন একটি বিল্ট ইন ডাটাবেস ভূমিকা বলা হয় db_datareaderযা প্রতিটি টেবিলে পঠিত অ্যাক্সেস দেয় এবং ডেটাবেসে দেখায়। আপনি সেই ভূমিকাটিতে আপনার সমস্ত ব্যবহারকারীকে যুক্ত করতে পারেন। তবে, আরও ভাল ধারণাটি হ'ল একটি নতুন ভূমিকা তৈরি করবে এবং এটিকে ভূমিকাটিতে যুক্ত করবে db_datareader। তারপরে আপনার সমস্ত ব্যবহারকারীকে নতুন ভূমিকার সাথে যুক্ত করুন। এখানে সুবিধাটি হ'ল আপনি যদি গ্রুপটিতে অতিরিক্ত অনুমতি যুক্ত করতে চান তবে কেবল ভূমিকাটির অনুমতিগুলি পরিবর্তন করে আপনি পারেন।

এর মাধ্যমে ভূমিকাটি তৈরি করুন:

CREATE ROLE RoleName

কোনও ভূমিকাতে একজন ব্যবহারকারীকে যুক্ত করুন (বা অন্যের ভূমিকাতে)

EXEC sp_addrolemember 'RoleName','UserName'

বা আপনি যদি 2012 বা তার চেয়ে বেশি হন

ALTER ROLE [RoleName] ADD MEMBER [UserName]

বিস্তারিত ব্যাখ্যা এবং পটভূমি তথ্য কেনেথের প্রদানের জন্য, আমি যা সম্পর্কে অস্পষ্ট ছিল তা ধন্যবাদ That's 1 Login to 1 User in a database
লিপফ্রোগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.