SQL میں صارفین اور کردار کے لئے رسائی کنٹرول

سلامتی ڈیٹا بیس کے منتظمین کے لئے انتہائی اہم ہے جس سے ان کے گیگابایٹس کی اہم کاروباری ڈیٹا کو غیر مجاز بیرونی اداروں اور ان کے اقتدار سے زیادہ کرنے کی کوشش کرنے والوں کی آنکھوں سے آنکھوں سے بچانے کی کوشش ہوتی ہے. تمام رشتہ دار ڈیٹا بیس کے انتظام کے نظام کو ان خطرات کو کم سے کم کرنے کے لئے ڈیزائن کیا گیا ہے. وہ مائیکروسافٹ رسائی پیچیدہ صارف / رول ڈھانچہ میں پیش کردہ آسان رشتہ دار ڈیٹا بیس جیسے اوراکل اور مائیکروسافٹ SQL سرور کی طرف سے کی حمایت کی طرف سے فراہم کردہ آسان پاس ورڈ تحفظ سے رینج. یہ مضمون تمام ڈیٹا بیسس پر مشترکہ سیکیورٹی میکانزم پر توجہ مرکوز کرتا ہے جس میں ساختہ سوالات زبان (یا SQL ) لاگو ہوتا ہے. ساتھ ساتھ، ہم ڈیٹا تک رسائی کے کنٹرول کو مضبوط بنانے اور آپ کے اعداد و شمار کی حفاظت کو یقینی بنانے کے عمل کے ذریعے چلیں گے.

صارفین

سرور پر مبنی ڈیٹا بیسس سبھی ایک صارف کا تصور کرتے ہیں جو کمپیوٹر آپریٹنگ سسٹم میں استعمال ہوتا ہے. اگر آپ مائیکروسافٹ ونڈوز NT اور ونڈوز 2000 میں موجود صارف / گروپ کے تنظیمی ڈھانچے سے واقف ہیں، تو آپ کو مل جائے گا کہ صارف / رول گروپ SQL Server اور اورراکل کی طرف سے حمایت کی بہت ہی اسی طرح ہیں.

یہ انتہائی سفارش کی جاتی ہے کہ آپ انفرادی ڈیٹا بیس صارف اکاؤنٹس کو ہر شخص کے لۓ بنائیں جو اپنے ڈیٹا بیس تک رسائی حاصل کریں گے. صارفین کے درمیان اکاؤنٹس کا اشتراک کرنے کے لئے تکنیکی طور پر یہ ممکن ہے کہ آپ ہر قسم کے صارف کیلئے صرف ایک صارف اکاؤنٹ استعمال کریں جو آپ کے ڈیٹا بیس تک رسائی حاصل کرنے کی ضرورت ہے، لیکن میں اس پریکٹس کو دو وجوہات کی حوصلہ افزائی کرتا ہوں. سب سے پہلے، یہ انفرادی احتساب کو ختم کرے گا - اگر کوئی صارف آپ کے ڈیٹا بیس میں تبدیلی کرتا ہے (خود کو ایک $ 5،000 اضافہ کر کے کہتے ہیں)، آپ اس کو کسی مخصوص شخص کو ٹیسٹنگ اکاؤنٹس کے استعمال کے ذریعے ٹریس نہیں کر سکیں گے. مزید برآں، اگر کوئی مخصوص صارف آپ کی تنظیم چھوڑ دیتا ہے اور آپ اس ڈیٹا بیس سے اپنی رسائی کو دور کرنا چاہتے ہیں، تو آپ کو اس پاس ورڈ کو بدلنے کے لئے مجبور کیا جائے گا کہ تمام صارفین پر عمل کریں.

صارف اکاؤنٹس بنانے کے طریقوں کو پلیٹ فارم سے پلیٹ فارم سے مختلف ہوتی ہے اور آپ کو درست طریقہ کار کے لئے اپنے DBMS مخصوص دستاویزات سے مشورہ کرنا پڑے گا. مائیکروسافٹ SQL سرور کے صارفین کو sp_adduser ذخیرہ کردہ طریقہ کار کے استعمال کی تحقیقات کرنا چاہئے. اوریکل ڈیٹا بیس کے منتظمین CREATE USER کمانڈ مفید تلاش کریں گے. آپ متبادل تصدیق کے منصوبوں کی تحقیقات بھی کرنا چاہتے ہیں. مثال کے طور پر، مائیکروسافٹ SQL سرور ونڈوز NT انٹیگریٹڈ سیکورٹی کے استعمال کی حمایت کرتا ہے. اس اسکیم کے تحت، صارفین کو ان کے ونڈوز NT صارف اکاؤنٹس کے ذریعے ڈیٹا بیس کی شناخت کی جاتی ہے اور ڈیٹا بیس تک رسائی کے لئے ایک اضافی صارف کی شناخت اور پاسورڈ درج کرنے کی ضرورت نہیں ہے. یہ نقطہ نظر ڈیٹا بیس کے منتظمین کے درمیان انتہائی مقبول ہے کیونکہ اس کا اکاؤنٹ مینجمنٹ کے نیٹ ورک ایڈمنسٹریشن کے عملے کو تبدیل کرتا ہے اور یہ اختتامی صارف پر ایک سائن ان کی آسانی کو آسان کرتا ہے.

کردار

اگر آپ ایک چھوٹے سے صارفین کے ساتھ ماحول میں ہیں تو، شاید آپ شاید صارف اکاؤنٹس پیدا کر سکیں گے اور براہ راست آپ کو ان کی ضروریات کو یقینی بنانے کے لئے آپ کی ضروریات کے لئے کافی ہے. تاہم، اگر آپ کے پاس بہت زیادہ صارفین ہیں، تو آپ سب سے زیادہ امکانات اکاؤنٹس اور مناسب اجازتوں کو برقرار رکھنے کے بوجھ کی طرف سے زیادہ تر ہوسکتے ہیں. اس بوجھ کو کم کرنے کے لئے، انحصار ڈیٹا بیس کرداروں کے تصور کی حمایت کرتے ہیں. ونڈوز این ٹی کے گروپوں کے ساتھ ڈیٹا بیس کی کردار اسی طرح کام کرتی ہے. صارف کے اکاؤنٹس کو رول (مقرر) کے لئے تفویض کیا جاتا ہے اور اس کے بعد انفرادی صارف اکاؤنٹس کے بجائے مجموعی طور پر رول کو تفویض کیا جاتا ہے. مثال کے طور پر، ہم ڈی بی اے کردار بن سکتے ہیں اور پھر اپنے انتظامی عملے کے صارف اکاؤنٹس کو اس کردار میں شامل کرسکتے ہیں. ایک بار ہم نے ایسا کرنے کے بعد، ہم صرف موجودہ (اور مستقبل کے) منتظمین کو مخصوص اجازت کے طور پر کردار کی اجازت تفویض کر سکتے ہیں. ایک بار پھر، کردار بنانے کے طریقہ کار پلیٹ فارم سے پلیٹ فارم سے مختلف ہوتی ہیں. MS SQL سرور منتظمین کو sp_addrole اسٹوریج کے طریقہ کار کی تحقیقات کرنی چاہئے جبکہ اوریکل ڈی بی بی کو تخلیقی روول نحوط کا استعمال کرنا چاہئے.

تحویل کی اجازت

اب ہم نے اپنے ڈیٹا بیس میں صارفین کو شامل کیا ہے، اس وقت اجازتیں شامل کرکے سیکورٹی کو مضبوط بنانے کا وقت ہے. ہمارا پہلا قدم ہمارے صارفین کو مناسب ڈیٹا بیس کی اجازت فراہم کرے گی. ہم اس کو SQL GRANT بیان کے استعمال کے ذریعے پورا کریں گے.

یہاں بیان کا نحوقی ہے:

گانٹ <اجازت>
[ON <ٹیبل>]
<صارف / کردار> پر
[گریجویشن کے اختیارات کے ساتھ]

اب، ہم اس بیان سے قطع نظر نظر آتے ہیں. پہلی لائن، GRANT <اجازت>، ہمیں مخصوص ٹیبل کی اجازتوں کی وضاحت کرنے کی اجازت دیتا ہے جو ہم دے رہے ہیں. یہ یا تو ٹیبل کی سطح کی اجازت ہو سکتی ہے (جیسے منتخب، انسپیرٹ، اپ ڈیٹ اور خارج کر دیں) یا ڈیٹا بیس کی اجازت (جیسے تخلیقی ٹیبل، ڈیٹا بیس اور گریجویٹ). ایک ہی GRANT بیان میں ایک سے زائد اجازت دی جاسکتی ہے، لیکن میز کی سطح کی اجازتوں اور ڈیٹا بیس کی سطح کی اجازتوں کو ایک ہی بیان میں نہیں مل سکتا ہے.

دوسری لائن، پر <میز>، استعمال کیا جاتا ہے میزائل کی سطح کی اجازت کے لئے متاثرہ جدول کو متعین کرنے کے لئے. اگر یہ ایرر برقرار رہے تو ہمارے ہیلپ ڈیسک سے رابطہ کریں. اس ویڈیو پر غلط استعمال کی اطلاع دیتے ہوئے ایرر آ گیا ہے. تیسری لائن صارف یا کردار کی وضاحت کرتا ہے جو اجازت دی جا رہی ہے.

آخر میں، چاند لائن کے ساتھ، گریجویشن اختیار اختیاری ہے. اگر یہ لائن بیان میں شامل ہے تو، صارفین کو بھی متاثر کن صارفین کو دیگر اجازتوں کو بھی اجازت دی جا سکتی ہے. یاد رکھیں کہ گریٹر اختیار کے ساتھ مخصوص نہیں کیا جاسکتا ہے جب اجازت کسی کردار میں تفویض کی جاتی ہے.

مثال

چلو کچھ مثالیں ملاحظہ کریں. ہمارے پہلے منظر میں، ہم نے حال ہی میں 42 ڈیٹا انٹری آپریٹرز کے ایک گروہ کو ملازمت حاصل کی ہے جو گاہکوں کی ریکارڈوں میں اضافہ اور برقرار رکھے گی. انہیں گاہکوں کی میز میں معلومات تک رسائی حاصل کرنے کی ضرورت ہے، اس معلومات میں ترمیم کریں اور میز پر نئے ریکارڈ شامل کریں. انہیں ڈیٹا بیس سے ریکارڈ مکمل طور پر خارج کرنے کے قابل نہیں ہونا چاہئے. سب سے پہلے، ہمیں ہر آپریٹر کے لئے صارف اکاؤنٹس بنانا چاہئے اور پھر ان سب کو نیا کردار، DataEntry میں شامل کریں. اس کے بعد، ہمیں مندرجہ ذیل SQL بیان کا استعمال مناسب اجازت دینے کے لۓ کرنا چاہئے.

گریجویٹ منتخب کریں، اندراج، اپ ڈیٹ کریں
گاہکوں پر
ڈیٹا ڈیٹ کرنے کے لئے

اور یہ سب کچھ ہے! اب ہم ایک کیس کی جانچ پڑتال کریں جہاں ہم ڈیٹا بیس سطح کی اجازتوں کو تفویض کررہے ہیں. ہم ڈی بی اے کے کردار کے ارکان کو ہمارے میزبان کو نئی میزیں شامل کرنے کی اجازت دیتی ہیں. مزید برآں، ہم چاہتے ہیں کہ وہ دوسروں کو اسی طرح کرنے کے لئے دوسرے صارفین کی اجازت دینے میں مدد کرسکیں. یہاں SQL بیان ہے:

گریج بنائیں ٹیبل
ڈی بی اے کو
گریجویشن کے اختیارات کے ساتھ

یاد رکھیں کہ ہم نے گریٹر آپشن لائن کے ساتھ شامل کیا ہے تاکہ یہ یقینی بنائیں کہ ہمارے ڈی بی اے دیگر صارفین کو اس اجازت کو تفویض کرسکیں.

اجازت ہٹانے

ایک بار جب ہم نے اجازت دی ہے، اسے اکثر بعد میں ان کو منسوخ کرنے کے لئے ضروری ثابت ہوتا ہے. خوش قسمتی سے، SQL ہمیں پہلے اجازت دی اجازتوں کو دور کرنے کے لئے ریووک کمانڈ کے ساتھ فراہم کرتا ہے. یہاں مطابقت رکھتا ہے:

ملاحظہ کریں [گریپشن اختیار] کے لئے <اجازتات
<ٹیبل> پر
<صارف / کردار> سے

آپ کو یہ نوٹس مل جائے گا کہ اس حکم کے نحوق کو گریان کمانڈ کی طرح ملتا ہے. فرق یہ ہے کہ گریانت اختیار کے ساتھ کمانڈ کے اختتام پر بجائے ریویو کمانڈ لائن پر بیان کیا جاتا ہے. مثال کے طور پر، چلو تصور کرتے ہیں کہ ہم مریم کے پہلے گاہکوں کے ڈیٹا بیس سے متعلق ریکارڈوں کو ہٹانے کے لۓ اجازت کو مسترد کرنا چاہتے ہیں. ہم مندرجہ ذیل کمانڈ کا استعمال کریں گے:

دوبارہ بھیج دیں
گاہکوں پر
مریم سے

اور یہ سب کچھ ہے! مائیکروسافٹ SQL سرور کی طرف سے کی حمایت کی ایک اضافی میکانزم ہے جو ذکر کرنے کے قابل ہے - DENY کمانڈ. یہ کمانڈ اس صارف کی اجازت سے واضح طور پر انکار کرنے کے لئے استعمال کیا جا سکتا ہے جو ان کی موجودہ یا مستقبل کے کردار کی رکنیت کے ذریعہ ہو سکتا ہے. یہاں مطابقت رکھتا ہے:

ڈینی <اجازت>
<ٹیبل> پر
<صارف / رول پر

مثال

ہمارے پچھلے مثال پر واپس آتے ہیں، چلو تصور کرتے ہیں کہ مریم مینیجر کے کردار کا بھی رکن تھا جو گاہک کی میز تک رسائی حاصل کرتی تھی. پچھلے ریویو کا بیان میز تک رسائی حاصل کرنے کے لئے کافی نہیں ہوگا. یہ اس صارف کو اپنے صارف کے اکاؤنٹ کو ھدف کرنے والے ایک بیان کے ذریعہ اجازت دی جائے گی، لیکن منیجر کردار میں ان کی رکنیت کے ذریعے اجازت پر اثر انداز نہیں کرے گا. تاہم، اگر ہم مستقل بیان کا استعمال کرتے ہیں تو اس کی اجازت کی میراث میراث ہوگا. یہاں حکم ہے:

دین ختم
گاہکوں پر
مریم سے

ڈین آرڈر بنیادی طور پر ڈیٹا بیس تک رسائی کے کنٹرول میں ایک "منفی اجازت" تخلیق کرتا ہے. اگر ہم بعد میں گاہکوں کی میز سے صفوں کو دور کرنے کے لئے مریم کی اجازت دینے کا فیصلہ کرتے ہیں تو، ہم صرف GRANT کمانڈ استعمال نہیں کر سکتے ہیں. موجودہ کمانڈر اس حکم کو فوری طور پر ختم کردیا جائے گا. اس کے بجائے، ہم سب سے پہلے منفی اجازت کے اندراج کو مندرجہ ذیل طور پر ہٹانے کے لئے ریووک کمانڈ کا استعمال کریں گے:

دوبارہ بھیج دیں
گاہکوں پر
مریم سے

آپ کو یہ معلوم ہو گا کہ یہ حکم بالکل ٹھیک ہے جیسے ایک مثبت اجازت کو دور کرنے کے لئے استعمال کیا جاتا ہے. یاد رکھیں کہ DENY اور GRANT اسی طرح کے فیشن میں دونوں کام کرتا ہے * mdash؛ وہ دونوں ڈیٹا بیس تک رسائی کنٹرول میکانزم میں اجازت (مثبت یا منفی) دونوں بناتے ہیں. REVOKE کمانڈ مخصوص صارف کے لئے تمام مثبت اور منفی اجازتوں کو ہٹاتا ہے. ایک بار یہ حکم جاری کیا جائے تو، مریم اس میز سے قطاروں کو ختم کرنے میں کامیاب ہوسکتا ہے اگر وہ اس کی اجازت کے حامل کردار کا رکن ہو. متبادل طور پر، براہ راست اجازت دینے کے لئے ایک GRANT کمانڈ جاری کیا جاسکتا ہے.

اس آرٹیکل کے دوران، آپ کو معیاری سوالات کی زبان کی طرف سے حمایت کردہ رسائی کے کنٹرول میکانیزم کے بارے میں ایک اچھا سودا سیکھا ہے. یہ تعارف آپ کو ایک اچھا نقطہ آغاز کے ساتھ فراہم کرنا چاہئے، لیکن میں آپ کو آپ کے ڈی بی ایس ایس دستاویزات کا حوالہ دینے کے لئے حوصلہ افزائی کرتا ہوں تاکہ آپ کے سسٹم کی جانب سے بہتر کردہ بہتر حفاظتی اقدامات سیکھیں. آپ یہ محسوس کریں گے کہ بہت سے ڈیٹا بیسز زیادہ جدید رسائی کنٹرول میکانیزم کی حمایت کرتے ہیں، جیسے مخصوص کالمز پر اجازت دی جاتی ہے.