এসকিউএল সার্ভার কাজ চালানোর অনুমতি প্রদান করুন


22

আমার এমএসএসকিউএল সার্ভার ২০০৫-এ আমার একটি কাজ আছে, যে কোনও ডাটাবেস ব্যবহারকারীকে চালানোর অনুমতি দিতে চাই।

আমি সুরক্ষার জন্য উদ্বিগ্ন নই, যেহেতু কাজের প্রকৃত কাজের ইনপুটটি ডাটাবেস টেবিল থেকে আসে। কেবল কাজ চালানো, সেই টেবিলে রেকর্ড যুক্ত না করে কিছুই করবে না।

আমি কীভাবে এই কাজের জন্য জনসাধারণের অনুমতি প্রদান করতে পারি তা খুঁজে পাচ্ছি না।

এই কাজ করতে কোন উপায় আছে কি? আমি এই মুহুর্তে কেবলমাত্র ভাবতে পারি যে কাজটি অবিচ্ছিন্নভাবে চালানো (বা কোনও সময়সূচীতে) করা দরকার, তবে যেহেতু এটির জন্য কেবল কোনও আসল কাজ খুব কমই করা দরকার (সম্ভবত প্রতি কয়েক মাসে একবার) এবং আমি চাই কাজটি যেন হয় এটি উপস্থিত হওয়ার সাথে সাথেই করা হয়ে যায়, এটি সর্বোত্তম সমাধান বলে মনে হয় না।

উত্তর:


20

আপনি একটি সঞ্চিত পদ্ধতি তৈরি করতে পারেন যা কাজ চালায়। আপনি with execute as ownerডাটাবেস মালিক হিসাবে সঞ্চিত প্রক্রিয়া চালাতে ব্যবহার করতে পারেন । এইভাবে, ব্যবহারকারীরা নিজেরাই অনুমতিগুলি লাগবে না sp_start_job

create procedure dbo.DoYourJob
with execute as owner
as
exec sp_start_job @job_name = 'YourJob'

DoYourJobলোকদের কাজ শুরু করার অনুমতি দেওয়ার জন্য মৃত্যুদণ্ড কার্যকর করার মঞ্জুরি দিন।

অবশ্যই, আপনি কোনও কার্যক্রমে কাজের বিষয়বস্তুও রাখতে পারেন এবং এটি চালনার অধিকার মঞ্জুর করতে পারেন। এটি ফলাফলের পাঠ্য প্রদর্শন করার মতো আরও মিথস্ক্রিয়াকে মঞ্জুরি দেয়।


এটি কাজ করে না। অ-সুবিধাপ্রাপ্ত ব্যবহারকারী পদ্ধতিটি পরিচালনা করতে পারেন, তবে পদ্ধতিটি sp_start_job কার্যকর করতে পারে না, কারণ ব্যবহারকারীর এটি চালানোর অনুমতি নেই। আমি চাই না যে বিষয়বস্তু কোনও পদ্ধতিতে থাকুক, কারণ আমি চাই না যে কলারটির কাজ শেষ হওয়ার জন্য অপেক্ষা করা উচিত।

@ সাহারমো: আপনি স্টোরেজ পদ্ধতিটি ডাটাবেস মালিক হিসাবে চালিয়ে নিতে পারেন, আমি আমার উত্তরটি সম্পাদনা করব
Andomar

এখনও কাজ করছে না. আমি একই ত্রুটি পেয়েছি। আমি এমএসডিবি ডাটাবেসে এবং একই ডাটাবেজে আমার ডাটাবেসে ডয়ইরজব তৈরি করার চেষ্টা করেছি।

1
@ সাহারমো: আজব, আমি অবাক হয়েছি ডাটাবেসের মালিক কে? আপনি ব্যবহার করতে পারেন with execute as 'loginname', কাজ করে না?
Andomar

3

মূলত, অনুমতিগুলি প্রয়োজন sp_start_job(অনুমতি বিভাগে দেখুন)।

ভূমিকাগুলি " এসকিউএল সার্ভার এজেন্ট ফিক্সড ডেটাবেস রোলস " এ বর্ণিত হয়েছে (উপরের লিঙ্কযুক্ত)

সম্পাদনা করুন, জানুয়ারী ২০১২

আমি উত্তর দেওয়ার 2 বছর পরে বেনামে ডাউনভোটের পরে ...

প্রশ্ন পড়া. এটা বলে

আমি কোনও ডাটাবেস ব্যবহারকারীকে চালানোর অনুমতি দিতে চাই

তারপর

আমি নিরাপত্তা নিয়ে চিন্তিত নই

এবং যদিও

আমি কীভাবে এই কাজের জন্য জনসাধারণের অনুমতি প্রদান করতে পারি তা খুঁজে পাচ্ছি না

সুতরাং নীচে ওপির মন্তব্যগুলি প্রশ্নটির বিরোধিতা করছে


1
এটি কি সমস্ত ব্যবহারকারীকে সমস্ত কাজ চালানোর অনুমতি দেবে না? আমি চাই তাদের কেবল একটি নির্দিষ্ট কাজ চালানোর অনুমতি হোক permission

1
যা আপনি যা চেয়েছিলেন ... "কাজের জন্য সর্বজনীন অনুমতি প্রদান করুন"
gbn

1

এটি কোনও নির্দিষ্ট ব্যবহারকারী (ব্যবহারকারী 1) কে যে কোনও এসকিএল এজেন্ট কাজ চালানোর অনুমতি দেবে।

এসকিউএলজেন্টুসরল এবং এসকিউএলজেন্টরেডার রোলের সদস্যরা কেবলমাত্র তাদের নিজস্ব কাজ শুরু করতে পারেন। এসকিউএলজেন্টওপ্রেটার রোলের সদস্যরা অন্যান্য ব্যবহারকারীর মালিকানাধীন সমস্ত স্থানীয় কাজ শুরু করতে পারেন

USE [msdb] GO CREATE USER [user1] FOR LOGIN [user1] GO USE [msdb] GO ALTER ROLE [SQLAgentOperatorRole] ADD MEMBER [user1] GO


0

আমার অপারেটরটিকে এসকিউএল সার্ভার এজেন্টের কার্যাদি ম্যানুয়ালি কার্যকর করার জন্য আমার অনুমতি দেওয়ার অনুরূপ প্রয়োজন। আমি এই পোস্টটি এসকিউএল সার্ভার এজেন্ট ফিক্সড ডেটাবেস রোলগুলি এসকিউএলজেন্টোপ্রেটাররোলকে প্রদান করার জন্য অনুসরণ করেছি।

আশা করি এটি আপনার কেস সমাধান করতে সহায়তা করবে।


আপনি কি করেছেন তার বিশদটি আপনি রাখতে পারেন? কেবলমাত্র লিঙ্কের উত্তরগুলি "উপরের দিকে ন্যক্কারজনক" - লিঙ্ক পচা ও সি।
ভেরেস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.