ایس کیو ایل سرور گرانٹ

Ays Kyw Ayl Srwr Gran



اس آرٹیکل میں، آپ سمجھیں گے کہ SQL سرور میں GRANT سٹیٹمنٹ کو پرنسپل کو محفوظ کرنے کے لیے اجازت دینے کے لیے کیسے استعمال کیا جائے۔

SQL سرور محفوظ اور پرنسپل

ایک محفوظ سے مراد وہ وسائل ہیں جو SQL سرور ڈیٹا بیس انجن کی اجازت کا نظام رسائی کو کنٹرول کرتا ہے۔ ایک مثال ڈیٹا بیس ٹیبل ہوگی۔

پرنسپل سے مراد کسی بھی ایسی ہستی سے ہوتا ہے جسے کسی بھی SQL سرور وسائل تک رسائی کی ضرورت ہوتی ہے۔ مثال کے طور پر، میز پر اجازت کی درخواست کرنے والا صارف پرنسپل ہے۔







ایس کیو ایل سرور گرانٹ کا بیان

درج ذیل ایس کیو ایل سرور میں GRANT کمانڈ کا نحو دکھاتا ہے۔



اجازتیں دیں۔
اہم سے محفوظ پر؛

آپ کو اس اجازت کی وضاحت کرنے کی ضرورت ہے جو آپ کوما سے الگ کردہ فہرست کے طور پر پرنسپل کو تفویض کرنا چاہتے ہیں۔



ON کلیدی لفظ آپ کو محفوظ کی وضاحت کرنے کی اجازت دیتا ہے جس پر اجازتیں لاگو ہوتی ہیں۔ آخر میں، TO کلیدی لفظ آپ کو ٹارگٹ پرنسپل سیٹ کرنے کے قابل بناتا ہے۔





مثال کے طور پر، صارف تخلیق کریں بیان کا استعمال کرتے ہوئے صارف بنانا اس صارف کے لیے اجازتوں کی وضاحت نہیں کرتا ہے۔ لہذا، اس صارف کے لیے اجازتیں متعین کرنے کے لیے GRANT اسٹیٹمنٹ کا استعمال کرنا ضروری ہے۔

آئیے ایک مثال لیتے ہیں۔



مثال لاگ ان بنائیں

آئیے مثال کے مقاصد کے لیے نمونہ لاگ ان بنا کر شروع کریں۔ استفسار ذیل میں فراہم کیا گیا ہے:

لاگ ان linuxhint بنائیں
پاس ورڈ = 'پاس ورڈ' کے ساتھ؛

اوپر دی گئی کمانڈ کو صارف نام linuxhint اور مخصوص پاس ورڈ کے ساتھ صارف بنانا چاہیے۔

نمونہ ڈیٹا بیس بنائیں

ہم ایک ڈیٹا بیس بنا سکتے ہیں جہاں صارف ایک بار لاگ ان کرنے کے بعد رہائش پذیر ہوگا۔ سوالات جیسا کہ دکھایا گیا ہے:

اگر حل کرنے والا موجود ہو تو ڈیٹا بیس چھوڑ دیں؛

ڈیٹا بیس حل کرنے والا بنائیں؛

حل کرنے والا استعمال کریں؛

ڈراپ ٹیبل اگر اندراجات موجود ہیں؛

ٹیبل اندراجات بنائیں (
id int کالعدم شناخت نہیں ہے (1،
1) بنیادی کلید،
سرور_نام ورچار(50)،
سرور_پتہ varchar(255) کالعدم نہیں،
compression_method varchar(100) ڈیفالٹ 'کوئی نہیں'،
سائز_پر_ڈسک فلوٹ کالعدم نہیں ہے،
سائز_کمپریسڈ فلوٹ،
کل_ریکارڈز نٹ نہیں ہیں،
init_date تاریخ
);
داخل کریں
میں
ENTRIES(سرور_نام،
سرور کا پتہ،
کمپریشن_طریقہ،
سائز_پر_ڈسک،
سائز_کمپریسڈ،
کل_ریکارڈز،
init_date)
اقدار
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02')
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19')
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000,'2022-11-11')
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08')
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12')
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

لاگ ان کے لیے ایک صارف بنائیں

ایک بار جب ہم ڈیٹا بیس اور ٹیبل بنا لیتے ہیں، تو ہم linuxhint لاگ ان کے لیے ایک صارف بنا سکتے ہیں جیسے:

حل کرنے والا استعمال کریں۔
صارف linuxhint بنائیں
لاگ ان linuxhint کے لیے؛

نئے صارف کے طور پر لاگ ان کریں۔

اگلا، آئیے نئے بنائے گئے صارف کے طور پر لاگ ان کریں۔ کمانڈ جیسا کہ دکھایا گیا ہے:

سیٹ یوزر 'linuxhint'؛

لاگ ان ہونے کے بعد، ہم سلیکٹ کمانڈ چلا کر ٹیبلز دیکھنے کی کوشش کر سکتے ہیں:

اندراجات سے * منتخب کریں؛

مندرجہ بالا استفسار کو چلانے سے ایک خرابی واپس آنی چاہئے:

پیغام 229، سطح 14، ریاست 5، لائن 379
آبجیکٹ 'انٹریز'، ڈیٹا بیس 'ریزولوور'، سکیما 'dbo' پر SELECT کی اجازت سے انکار کر دیا گیا تھا۔

اس کی وجہ یہ ہے کہ linuxhint صارف کے پاس ڈیٹا بیس پر کوئی اجازت نہیں ہے، بشمول SELECT کی اجازت۔

صارف کو اجازت دیں۔

ہمیں SELECT کی اجازت دینے کی ضرورت ہے تاکہ صارف کو ٹیبل میں محفوظ کردہ معلومات کو دیکھنے کی اجازت دی جا سکے۔

اس کے لیے، آپ کو ایس کیو ایل سرور کے انتظامی اکاؤنٹ سے لاگ ان کرنے کی ضرورت ہے۔

اگلا، استفسار کو اس طرح چلائیں:

linuxhint کے اندراجات پر انتخاب کی اجازت دیں؛

ایک بار عمل میں آنے کے بعد، linuxhint صارف کے طور پر لاگ ان کریں اور SELECT اسٹیٹمنٹ استعمال کریں۔

اندراجات سے * منتخب کریں؛

اس صورت میں، کمانڈ ٹیبل کو واپس کرتی ہے کیونکہ صارف کے پاس SELECT کی اجازت ہوتی ہے۔

آپ صارف کو دوسری اجازت بھی تفویض کر سکتے ہیں، جیسے کہ داخل کریں اور حذف کریں:

linuxhint کے اندراجات پر داخل کریں، حذف کریں؛

اس صورت میں، linuxhint صارف کے پاس اندراجات کی میز پر SELECT، INSERT، اور DELETE کی اجازت ہونی چاہیے۔

نتیجہ

اس پوسٹ میں، ہم نے SQL سرور میں GRANT کمانڈ کے استعمال کی کھوج کی۔ کمانڈ آپ کو دیے گئے پرنسپل کو اجازتیں تفویض کرنے کی اجازت دیتی ہے۔