MySQL এর একটি বৈশিষ্ট্য হল এর নিজস্ব নিরাপত্তা, বাহ্যিক সুরক্ষার উপর নির্ভর করে। একটি আধুনিক, পূর্ণ বৈশিষ্ট্যযুক্ত এবং দক্ষ ডাটাবেস ম্যানেজমেন্ট সিস্টেম হিসাবে, MySQL এর ব্যবহারকারীদের পরিচালনার জন্য এবং এটি নিয়ন্ত্রণ করা সংস্থানগুলিতে তাদের অ্যাক্সেসের জন্য নিজস্ব সরঞ্জাম রয়েছে৷
যদি আপনি সঠিক ব্যবহারকারীর নাম এবং পাসওয়ার্ড না জানেন, MySQL এর মাধ্যমে ডাটাবেস অ্যাক্সেস করা খুবই কঠিন৷
স্বাভাবিক হোস্টিং মোডে, এটিই যথেষ্ট। অপ্রত্যাশিত পরিস্থিতি, হ্যাকার আক্রমণ এবং অন্যান্য সমস্যাগুলি বাহ্যিক সিস্টেম প্রশাসন এবং সুরক্ষা পরিষেবাগুলির বিষয়। এই ধারণাটি ঐতিহ্যগত হয়ে উঠেছে এবং কার্যত আলোচনা করা হয় না৷
MySQL সার্ভার এবং ব্যবহারকারী রুট ইনস্টল করুন
যে অপারেটিং পরিবেশে ডাটাবেস ম্যানেজমেন্ট সিস্টেম ইনস্টল করা হোক না কেন, এতে সর্বদা অন্তত একজন ব্যবহারকারী থাকে: রুট। মাইএসকিউএল ইনস্টল করুন, সমস্ত রুট অধিকার সহ একজন ব্যবহারকারী তৈরি করুন - এটি ছাড়াই কাজ করুনসার্ভার সম্ভব নয়। এই ব্যবহারকারীর বিশেষাধিকারগুলি এর জন্য যথেষ্ট:
- নতুন ব্যবহারকারী তৈরি এবং পরিচালনা করুন;
- ডেটাবেস তৈরি এবং পরিচালনা করুন।
MySQL-এ "পাসওয়ার্ডবিহীন" ব্যবহারকারীদের অস্তিত্ব থাকা মৌলিকভাবে সম্ভব, কিন্তু এটি অগ্রহণযোগ্য৷
সাধারণ অনুশীলন:
- নিজের কম্পিউটারে ইনস্টল করা সার্ভার, যেখানে হোস্টিং ইনস্টল করা যেতে পারে (স্থানীয় বিকল্প);
- সার্ভার ইন্টারনেটে সর্বজনীন হোস্টিং-এ রয়েছে৷
প্রথম ক্ষেত্রে, কমান্ড লাইন থেকে সার্ভারের সাথে কাজ করা এবং phpMyAdmin ব্যবহার করা সম্ভব, দ্বিতীয় ক্ষেত্রে, শুধুমাত্র phpMyAdmin বা অনুরূপ টুল, কিন্তু কমান্ড লাইন দূরবর্তী SSH অ্যাক্সেসের মাধ্যমে অ্যাক্সেস করা যেতে পারে।
নিজস্ব প্রশাসনের সরঞ্জাম
Unixoid পরিবারের সাথে এবং Apache সার্ভারের অতীতের সাথে আত্মীয়তার অনুভূতি মাইএসকিউএল এর একটি বৈশিষ্ট্য: ব্যবহারকারী তৈরি করুন অদ্ভুত সিনট্যাক্স সহ একটি কমান্ড লাইন। লিনাক্স এবং অনুরূপ সিস্টেমের সাথে কাজ করা পেশাদারদের জন্য, এটি উইন্ডোজ ব্যবহারকারীদের চোখে বন্য দেখায় যতটা পরিচিত, যারা "বাস্তব জীবনে প্রবেশ করেনি।"
একজন ব্যবহারকারী তৈরি করা সার্ভার কমান্ড লাইন শুরু করার সাথে শুরু হয়। একটি উইন্ডোজ পরিবেশে, এটি নিম্নরূপ করা হয়৷
প্রথম (1) আপনাকে প্রশাসক হিসাবে কমান্ড লাইন চালাতে হবে, তারপরে MySQL অবস্থিত ফোল্ডারে যান (2), তারপরসার্ভার নিজেই শুরু করুন (3):
mysql -u… -p
এখানে "-u…" এবং "-p" হল কী যা "…"=রুট (বা অন্য নাম) এবং এর পাসওয়ার্ড নির্দেশ করে। নীতিগতভাবে, একজন ব্যবহারকারী রুট নাও হতে পারে, কিন্তু যার "রুট" (প্রশাসনিক) অধিকার রয়েছে৷
গুরুত্বপূর্ণ: সার্ভারটি আসলে সর্বদা চলমান থাকে, এখানে mysql -u… -p হল সার্ভার অ্যাক্সেস করার কমান্ড, এটি শুরু না করে৷
একটি লিনাক্স পরিবেশে এবং অনুরূপ সিস্টেমে, এই জাতীয় কমান্ড একটি "নেটিভ" অ্যাকশন এবং একটি নিয়ম হিসাবে, সঠিক জায়গায় (সঠিক পথে) mysqld শুরু করার মাধ্যমে এটিকে পরীক্ষা করা উচিত প্রশাসক এখানে সাধারণত একটি ভিন্ন নাম থাকে: mysql নয়, কিন্তু mysqld। এছাড়াও এখানে, এই ক্রিয়াটি সর্বদা সমস্ত ব্যবহারকারীর জন্য উপলব্ধ নয় (অপারেটিং সিস্টেমের, মাইএসকিউএল সার্ভারের নয়)। উইন্ডোজের বিপরীতে, Linuxoids-এ, অর্ডার এবং নিরাপত্তা একটি স্বাভাবিক এবং অ-আলোচনাযোগ্য প্রয়োজনীয়তা, যা সর্বদা একটি সভ্য পদ্ধতিতে আচরণ করা হয়।
যেকোন ক্ষেত্রে, একবার mysql শুরু হয়ে গেলে, এটি একটি প্রম্পটের সাথে এটি ঘোষণা করবে (4):
mysql>
এবং ব্যবহারকারী এবং ডেটাবেস উভয়ের সাথেই কাজ করা সম্ভব হবে৷
নোট। উইন্ডোজ পরিবেশে ইনস্টল করার সময়, সবকিছু: Apache, MySQL, PHP, phpMyAdmin ডিফল্ট পাথগুলিতে সেট করা যেতে পারে, তবে এই গুরুত্বপূর্ণ সরঞ্জামগুলির জন্য আরও কমপ্যাক্ট এবং কাছাকাছি অবস্থানগুলি ব্যবহার করার পরামর্শ দেওয়া হচ্ছে:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
এই যুক্তিটি কেবল প্রশাসনকে সহজ করবে না, বরং পণ্য সংস্করণগুলির মধ্যে স্থানান্তর এবং তাদের কার্যকারিতা পরিচালনা করার বিকাশকারীর ক্ষমতাকেও প্রসারিত করবে৷
MySQL কমান্ড লাইনে কাজ করা
একবার সার্ভার সাড়া দিলে এবং তার কমান্ড লাইন প্রদান করলে, ব্যবহারকারীদের তৈরি করা যাবে এবং অনুমতি দেওয়া যাবে।
এই উদাহরণে, create user কমান্ডটি 123DFG পাসওয়ার্ড দিয়ে পেট্রোভকে তৈরি করেছে। যদি একটি কমান্ড প্রবেশ করার সময় একটি ত্রুটি হয়, সার্ভার এটি সংশোধন করার প্রস্তাব দেয়, কিন্তু কমান্ড লাইনে কাজ করার সময় ভুল না করাই ভাল!
নিম্নলিখিত কমান্ডটি সমস্ত সুযোগ-সুবিধাগুলিকে সমস্ত কিছুর সমস্ত অধিকার দেয়৷ ফ্লাশ কমান্ডটি বাদ দেওয়া যেতে পারে, তবে এটি কমান্ডের বাফারকে 'পপ' করে, অর্থাৎ, এটি তাদের কার্যকর করা ঠিক করে।
MySQL: একজন ব্যবহারকারী তৈরি করুন এবং ডাটাবেসের অধিকার প্রদান করুন
উদাহরণে ব্যবহৃত কমান্ড:
. 'পেট্রোভ'@'লোকালহোস্ট'-এ সমস্ত সুযোগ-সুবিধা মঞ্জুর করুন;
আসলে ব্যবহারকারী পেট্রোভকে সমস্ত ডাটাবেসে (প্রথম তারকাচিহ্ন) সমস্ত টেবিলের (দ্বিতীয় তারকাচিহ্ন) অ্যাক্সেস দেয়।
একটি সাধারণ MySQL নিয়ম হিসাবে, একজন ব্যবহারকারী তৈরি করা হল:
গ্রান্ট [বিশেষাধিকারের ধরন] চালু [ডাটাবেসের নাম] [টেবিল নাম] '[ব্যবহারকারী]'@'লোকালহোস্ট';
নিম্নলিখিত সুবিধাগুলি অনুমোদিত:
- সমস্ত সুযোগ-সুবিধা।
- CREATE - নতুন টেবিল/ডাটাবেস তৈরি করার অধিকার।
- ড্রপ - টেবিল/ডাটাবেস ড্রপ করার অধিকার।
- মুছে ফেলুন - টেবিলের তথ্য মুছে ফেলার অধিকার৷
- INSERT - টেবিলে তথ্য লেখার অধিকার৷
- নির্বাচন করুন - টেবিল থেকে তথ্য পড়ার অধিকার৷
- আপডেট - টেবিলে তথ্য আপডেট করার অধিকার।
- গ্রান্ট বিকল্প - অন্যান্য ব্যবহারকারীদের বিশেষাধিকার নিয়ে কাজ করার অধিকার।
ব্যবহারিক দৃষ্টিকোণ থেকে, MySQL-এ "একজন ব্যবহারকারী তৈরি করুন" অধিকারের জন্য তিনটি বিকল্প বোঝায়:
- সমস্ত ডাটাবেস এবং সমস্ত ব্যবহারকারীর সমস্ত অধিকার;
- পড়ুন এবং লিখুন;
- শুধু পঠিত।
অধিকার প্রদানের জন্য অন্যান্য বিকল্পের খুব কমই প্রয়োজন হয়। লিনাক্স পরিবেশে, "আইনি" স্বাধীনতার (এবং প্রয়োজনীয়তা) জন্য অনেক বেশি ভিত্তি রয়েছে, তবে উইন্ডোজের তুলনায় সেখানে অনেক বেশি সুযোগ রয়েছে৷
MySQL "ব্যবহারকারী তৈরি করুন" এর বিপরীত অপারেশন ড্রপ হয়েছে।
ড্রপ ব্যবহারকারী 'Petrov'@'localhost';
এই কমান্ডটি কার্যকর করার পরে, পেট্রোভ আর একজন ব্যবহারকারী থাকবেন না এবং তার বিশেষাধিকারগুলি হারিয়ে যাবে৷ বিশেষাধিকার পরিবর্তন করতে, কমান্ডটি ব্যবহার করুন:
[DB] চালু [বিশেষাধিকার] প্রত্যাহার করুন।
MySQL-এর স্বাভাবিক ক্রিয়া হল একজন ব্যবহারকারী তৈরি করা বা মুছে ফেলা, কিন্তু বিশেষাধিকার পরিবর্তন করাও একটি বৈধ কাজ (কদাচিৎ অনুরোধ করা হয়)।
phpMyAdmin ব্যবহার করে
এই চমৎকার টুলটির অনেক বাস্তবায়ন রয়েছে। Apache, PHP এবং MySQL এর সংস্করণের উপর নির্ভর করে, এই পণ্যটির সঠিক সংস্করণ খুঁজে পেতে প্রায়শই দীর্ঘ সময় লাগে, কিন্তু একবার phpMyAdmin সফলভাবে ইনস্টল হয়ে গেলে, ব্যবহারকারীর অনেক সুবিধাজনক বৈশিষ্ট্য এবং একটি আরামদায়কইন্টারফেস।
phpMyAdmin ব্যবহার করে, আপনি MySQL কে বলতে পারেন যে কোনো হোস্টের জন্য একজন ব্যবহারকারী তৈরি করতে এবং বিদ্যমান ব্যবহারকারীদের কাছাকাছি অস্ত্রোপচারের উপায়ে পরিচালনা করতে।
phpMyAdmin একটি আরামদায়ক, স্বজ্ঞাত এবং বৈশিষ্ট্য সমৃদ্ধ ইন্টারফেসের একমাত্র টুল নয়, কিন্তু এটি MySQL সার্ভার পরিচালনার জন্য সবচেয়ে জনপ্রিয় টুল।
কমান্ড লাইন এবং নিরাপত্তা সম্পর্কে
অবশ্যই, MySQL কমান্ড লাইন ব্যবহার করা একটি অস্বাভাবিক ব্যায়াম, তবে এটি মনে রাখা উচিত যে কিছু ক্ষেত্রে শুধুমাত্র সার্ভার কমান্ড লাইন ডাটাবেস বা ব্যবহারকারীকে সংরক্ষণ করতে পারে, তথ্য আমদানি বা রপ্তানি নিশ্চিত করতে পারে৷
সফ্টওয়্যার সংস্করণগুলি এত দ্রুত বিকশিত হচ্ছে যে বিকাশকারীদের কাছে কেবল PHP এবং MySQL, MySQL এবং phpMyAdmin এর বৈশিষ্ট্যগুলি একত্রিত করার সময় নেই৷ কিছু ঘটলে, কমান্ড লাইন সর্বদা দিনটি সংরক্ষণ করবে।
একটিও কখনই ভুলে যাওয়া উচিত নয়: MySQL প্রশাসন শুধুমাত্র এর ডাটাবেস অ্যাক্সেস এবং এর কার্যকারিতার মাধ্যমে। ডাটাবেস ফাইলগুলি MySQL এর বাইরে অ্যাক্সেসের জন্য উন্মুক্ত। বাহ্যিকভাবে MySQL এবং এটি যে সংস্থানগুলি নিয়ন্ত্রণ করে তা সুরক্ষিত করা একটি বাস্তব এবং গুরুত্বপূর্ণ প্রয়োজন৷