ব্যবহারকারী-সংজ্ঞায়িত টেবিলের ধরণগুলিতে EXECUTE অনুমতি অস্বীকার করা হয়?


88

আমার এসকিউএল সার্ভার ২০০৮ -এ ব্যবহারকারী-সংজ্ঞায়িত সারণী প্রকারগুলি সম্পর্কে একটি প্রশ্ন রয়েছে ।

এএসপি.এনইটি অ্যাপ্লিকেশনগুলির একটির প্রয়োজনে আমরা এসকিউএল সার্ভার ২০০৮ এ আমাদের নিজস্ব টেবিল-প্রকারগুলি সংজ্ঞায়িত পদ্ধতিগুলিতে প্যারামিটার হিসাবে ব্যবহার করতে পারি (এএসপি.নেট অ্যাপ্লিকেশনটিতে এসকিউএল কমান্ড কার্যকর করার সময় আমরা স্টোরেজ পদ্ধতির জন্য প্যারামিটার হিসাবে ডেটা টেবল অবজেক্টটি পাস করি একটি উদাহরণের জন্য এখানে দেখুন )

সমস্যাটি হ'ল আমরা যখন এসপিএইএনটি থেকে এসকিএল কমান্ড (সঞ্চিত প্রক্রিয়া চালাও) করি তখন আমরা একটি ত্রুটি পাই:

'আমাদের টেবিলটাইপ', ডাটাবেস 'আওয়ারড্যাটাবেস', স্কিমা 'আওয়ারস্কেমা' তে এক্সিকিউটি অনুমতি অস্বীকার করা হয়েছিল।

কেন যে এত? আমাদের ব্যবহারকারীর দ্বারা সংজ্ঞায়িত টেবিলের ধরণের অনুমতি কেন দরকার? কেন এটি কেবল ব্যবহৃত স্টোরেজ পদ্ধতিতে অনুমতি সেট করা যথেষ্ট নয়? এবং আমরা তা কোন ব্যাপার কি, কেন সেখানে নেই সেট করতে আছে যদি EXECUTEসবটা বৈশিষ্ট্য উইন্ডোতে সেট করার অনুমতি প্রকার (আমি শুধুমাত্র দেখতে পারেন Control, References, Take Ownership, View Definition)?

আমি যা বুঝতে পারি তা হ'ল Controlবৈশিষ্ট্য উইন্ডোতে অনুমতি নির্ধারণ করা সমস্যার সমাধান করে এবং সঞ্চিত প্রক্রিয়াটি সমস্যা ছাড়াই চলে।



ধন্যবাদ! আমি অনুসন্ধান করেছি কিন্তু স্পষ্টভাবে যথেষ্ট ভাল নয়: /
জেনেজ

AS dboশেষে রাখার চেষ্টা করুন । ভালো: GRANT EXEC ON TYPE::[schema].[typename] TO [User] AS dbo। আমার জন্য কাজ করেছেন।
জোনাথন

উত্তর:


201

আমি সত্যিই আশা করি আপনি এখনই সমাধান করেছেন, প্রশ্নটি প্রায় 4 মাস পুরানো হিসাবে দেখা হচ্ছে, তবে আপনি যদি তা করেন নি তবে আমি যা মনে করি তার উত্তরটি এখানে।

GRANT EXEC ON TYPE::[schema].[typename] TO [User]
GO

9
আমার 2 সেন্ট: আপনার সংযোগ প্রমাণীকরণ ব্যবস্থার উপর নির্ভর করে আপনাকে পাবলিক গ্রুপে নির্বাহী মঞ্জুরি দিতে হতে পারে। সুতরাং আপনার অনুদানটি দেখতে এইরকম হবে: প্রকারের অনুদানটি টাইপ করুন :: [স্কিমা] [[টাইপনেম] TO [সর্বজনীন] যান
সুধাংশু মিশ্র

@ ডটনেটগুই আপনাকে অনেক ধন্যবাদ, সমাধানগুলির কোনওটিই আমার পক্ষে কাজ করে নি তোমার জন্য।
মাজন এল সেনিহ

3

যদি আপনার সঞ্চিত পদ্ধতিটি গতিশীল স্কয়ার ব্যবহার করে, যার অর্থ @sqlউত্পন্ন হয় এবং এর মাধ্যমে কার্যকর করা exec @sqlহয় তবে আপনার অন্তর্নিহিত টেবিলগুলিতে অনুমতি দেওয়া দরকার হবে need

একটি কাজের আশেপাশে হ'ল সঞ্চিত পদ্ধতিতে পরিবর্তিত হওয়া আলাদা ব্যবহারকারী হিসাবে চালানো । যদি আপনি এটিকে নিজের হিসাবে চালিত করেন তবে এটি সঞ্চিত প্রকোক্তার নীচে চালানো হবে, যা অত্যন্ত বিপজ্জনক। তবুও, যদি আপনার অন্য কোনও বিকল্প না থাকে:

CREATE PROCEDURE dbo.usp_Demo
WITH EXECUTE AS SELF

4
এটি নির্দেশ করার জন্য Thx। তবে সঞ্চিত পদ্ধতিতে এটিতে কোনও গতিশীল স্কয়ার নেই। কেবলমাত্র সাধারণ INSERT INTOএবং ´UPDATE´ সারণী বিবৃতি যার জন্য এই ব্যবহারকারীর তার প্রয়োজনীয় সমস্ত অনুমতি রয়েছে। এছাড়াও এই ব্যবহারকারী / লগইনটি এই এএসপি.নেট অ্যাপ্লিকেশনটির জন্য বিশেষভাবে সংরক্ষিত / তৈরি করা হয়েছে যাতে এই ডাটাবেসের সাথে সংযোগ স্থাপন করতে সক্ষম হয় এবং কেবল সঞ্চিত প্রক্রিয়া চালানো হয় (ইত্যাদি না, স্রষ্টা সর্বদা থাকে 'sa')।
জেনেজ

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