কাটা টেবিল কাটা স্টোরেজ পদ্ধতির মতো অবজেক্টগুলিতে অনুমতি নির্ধারণের মাধ্যমে এটি সম্পন্ন করা যেতে পারে:
GRANT EXECUTE ON <schema>.<object> to <user>;
তবে, আপনি লগইন এবং ব্যবহারকারী উভয় স্তরেই সুরক্ষা অধিকারগুলি দিতে পারেন want আপনি অ্যাক্সেসের প্রয়োজন হয় এমন বস্তুর জন্য কেবলমাত্র প্রয়োজনীয় অধিকারগুলি নির্ধারণ এবং মঞ্জুরি দিতে চাইবেন (যেমন মৃত্যুদন্ড কার্যকর করা)। EXECUTE AS
সক্ষমতার ব্যবহার বিবেচনা করুন যা অন্তর্নিহিত সমস্ত বস্তুর (যেমন সারণী) সমস্ত প্রয়োজনীয় অধিকার মঞ্জুর করার পরে কোডটি সম্পাদন করার জন্য প্রয়োজনীয় অনুমতিগুলি যাচাই করতে অন্য ব্যবহারকারীর ছদ্মবেশকে সক্ষম করে। EXECUTE AS
সঞ্চিত পদ্ধতি, ফাংশন, ট্রিগার ইত্যাদিতে যোগ করা যেতে পারে
সঞ্চিত পদ্ধতিতে ঠিক নীচে কোডে যুক্ত করুন:
CREATE PROCEDURE dbo.MyProcedure WITH EXECUTE AS OWNER
এই ক্ষেত্রে আপনি কল করা মডিউলটির মালিকের ছদ্মবেশ তৈরি করছেন। আপনি নিজেই নিজের ছদ্মবেশ তৈরি করতে পারেন, বা ব্যবহারকারী মডিউলটি তৈরি বা পরিবর্তন করছেন বা ... নকল কল, যা বর্তমান ব্যবহারকারীর অনুমতি গ্রহণের জন্য মডিউলকে সক্ষম করবে, বা ... ছদ্মবেশী মালিক, যা অনুমতি নেবে প্রক্রিয়াটির মালিককে বলা হচ্ছে ... ... ছদ্মবেশী 'ব্যবহারকারীর নাম', যা একটি নির্দিষ্ট ব্যবহারকারীর নকল করবে ... বা 'লগইন_নাম' দিয়ে একটি নির্দিষ্ট লগইনের ছদ্মবেশ তৈরি করবে।
EXECUTE
বেশিরভাগ সময়, আপনাকে কেবল সঞ্চিত প্রোকগুলিতে অধিকার প্রদান করতে হবে এবং তারপরে সংরক্ষণ করা সমস্ত প্রজেক্টের মধ্যে রেফারেন্সযুক্ত সমস্ত বস্তুর অধিকার দেওয়া হবে।
এইভাবে, আপনাকে কোনও অন্তর্নিহিত অধিকার দেওয়ার দরকার নেই (উদাহরণস্বরূপ: ডেটা আপডেট করতে বা অতিরিক্ত প্রোকে কল করতে)। মালিকানা চেইন আপনার জন্য এটি পরিচালনা করে। এটি গতিশীল স্কয়ারের জন্য বিশেষত সহায়ক বা যদি আপনার যদি উন্নত সুরক্ষা কাজগুলি তৈরি করতে হয় তবে CREATE TABLE
। EXECUTE AS
এগুলির জন্য বিবেচনা করার একটি সহজ সরঞ্জাম।
এই উদাহরণটি এই সমস্তটি পরিষ্কার করতে সহায়তা করতে পারে:
একটি ডাটাবেসে জনসাধারণের অ্যাক্সেস সহ NoPrivUser নামে একটি ব্যবহারকারী তৈরি করুন (যেমন dbadb):
USE [master];
GO
CREATE LOGIN [NoPrivUser] WITH PASSWORD=N'ABC5%', DEFAULT_DATABASE=[dbadb],
CHECK_EXPIRATION=ON, CHECK_POLICY=ON;
GO
USE [DBAdb];
GO
CREATE USER [NoPrivUser] FOR LOGIN [NoPrivUser];
GO
দ্রষ্টব্য: এই প্রক্রিয়াটির স্রষ্টা বা তার মালিকানা লক্ষ্যবস্তু ডাটাবেসের মধ্যে টেবিলের অধিকার তৈরি করতে প্রয়োজনীয় হবে।
use DBAdb
go
CREATE PROCEDURE dbo.MyProcedure
WITH EXECUTE AS OWNER
truncate table MyTable
GO
GRANT EXEC ON dbo.MyProcedure TO NoPrivUser;
GO
-- Now log into your database server as NoPrivUser and run the following.
সঙ্গে EXECUTE AS
দফা সঞ্চিত পদ্ধতি বস্তুর মালিক প্রেক্ষাপটে অধীনে চালানো হয়। এই কোডটি সাফল্যের সাথে তৈরি করে dbo.MyTable
এবং সারিগুলি সফলভাবে .োকানো হয়েছে। এই উদাহরণে, ব্যবহারকারীর NoPrivUser
টেবিলটি সংশোধন করার, বা এই টেবিলের কোনও ডেটা পড়তে বা সংশোধন করার নিখরচায় অনুমোদিত কোনও অধিকার নেই।
এই প্রক্রিয়াটির প্রেক্ষাপটে কোডিংযুক্ত এই নির্দিষ্ট টাস্কটি সম্পন্ন করার জন্য এটি কেবলমাত্র প্রয়োজনীয় অধিকারগুলি গ্রহণ করে।
এই অধিকারগুলি স্থায়ীভাবে বরাদ্দ না করে উন্নত সুরক্ষা অধিকারগুলির প্রয়োজন এমন কাজ সম্পাদন করতে পারে এমন সঞ্চিত পদ্ধতি তৈরির এই পদ্ধতিটি খুব কার্যকর।