আমি যখন প্রথম কোনও ব্যবহারকারীর সুযোগ-সুবিধাগুলি দেই তখন কেন একটি "অনুদানের ব্যবহার" তৈরি করা হয়?


100

আমি ডিবিএমএস-এর প্রশাসকের পক্ষে নতুন এবং আজ রাতেই একটি নতুন ডাটাবেস স্থাপন করছিলাম (মাইএসকিউএল ব্যবহার করে) আমি এটি লক্ষ্য করেছি। কোনও ব্যবহারকারীকে প্রথমবারের জন্য একটি বিশেষাধিকার দেওয়ার পরে, অন্য একটি অনুদান তৈরি করা হয়েছে যা দেখে মনে হচ্ছে

GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password

ডকুমেন্টেশনটিতে বলা হয়েছে যে USAGEঅধিকারটির অর্থ "কোনও সুযোগ সুবিধাই নেই", সুতরাং আমি অনুমানগুলি অনুমান করছি যে অনুক্রমগুলি হায়ারার্কিকভাবে কাজ করে এবং সম্ভবত কোনও ব্যবহারকারীর অবশ্যই সমস্ত ডেটাবেসগুলির জন্য কিছু প্রকারের অধিকার থাকতে হবে, তাই এটি সমস্ত ক্যাচ হিসাবে কাজ করে?

IDENTIFIED BYযখন আমি তৈরি অনুদানের একটি নেই তখন এই লাইনটিতে কেন একটি ধারা রয়েছে তা আমি বুঝতে পারি না (বেশিরভাগ কারণ আমি বুঝতে পারি না যে দফাটি কী উদ্দেশ্যে IDENTIFIED BYকাজ করে)।

সম্পাদনা করুন: মূলত এটি উল্লেখ না করার জন্য দুঃখিত, অনুদানগুলি ছিল

GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user

আপনি যে অনুদানটি
চালিয়েছেন

উত্তর:


143

যেমনটি আপনি বলেছেন, মাইএসকিউএলটিতে USAGE"কোনও সুযোগ-সুবিধা নেই" এর সমার্থক শব্দ। থেকে মাইএসকিউএল রেফারেন্স ম্যানুয়াল :

ইউএসএজে বিশেষাধিকার নির্দিষ্টকরণকারীর অর্থ "কোনও সুযোগ-সুবিধা নেই"। এটি বিদ্যমান অ্যাকাউন্টের সুবিধাগুলি প্রভাবিত না করে সম্পদ সীমা বা এসএসএল বৈশিষ্ট্যগুলির মতো অ্যাকাউন্ট বৈশিষ্ট্যগুলি সংশোধন করতে গ্রান্টের সাথে বৈশ্বিক স্তরে ব্যবহৃত হয়।

USAGEমাইএসকিউএলকে বলার একটি উপায় যা এই অ্যাকাউন্টে কোনও সত্যিকারের সুযোগ-সুবিধা ছাড়াই একটি অ্যাকাউন্ট বিদ্যমান। সুতরাং তাদের কেবল মাইএসকিউএল সার্ভার ব্যবহার করার অনুমতি রয়েছে USAGE। এটি `mysql`.`user`কোনও সুবিধাপ্রাপ্ত সেট ছাড়াই টেবিলের একটি সারির সাথে সামঞ্জস্য ।

IDENTIFIED BYদফা নির্দেশ করে যে একটি পাসওয়ার্ড ব্যবহারকারীর জন্য সেট করা হয়। আমরা কীভাবে জানব যে একজন ব্যবহারকারী কে তারা বলে যে তারা? তারা চিহ্নিত তাদের অ্যাকাউন্টের জন্য সঠিক পাসওয়ার্ডটি পাঠিয়ে নিজেদের।

ব্যবহারকারীর পাসওয়ার্ড হ'ল সেই বিশ্বব্যাপী স্তরের অ্যাকাউন্ট বৈশিষ্ট্যগুলির মধ্যে একটি যা একটি নির্দিষ্ট ডাটাবেস বা টেবিলের সাথে আবদ্ধ নয়। এটি `mysql`.`user`টেবিলেও থাকে। ব্যবহারকারীর যদি অন্য কোনও সুযোগ না থাকে ON *.*তবে তাদের মঞ্জুরি দেওয়া হয় USAGE ON *.*এবং সেখানে তাদের পাসওয়ার্ড হ্যাশ প্রদর্শিত হয়। এটি প্রায়শই কোনও CREATE USERবিবৃতিটির পার্শ্ব প্রতিক্রিয়া হয় । কোনও ব্যবহারকারী যখন সেভাবে তৈরি করা হয়, তখন তাদের প্রাথমিকভাবে কোনও সুযোগ-সুবিধা নেই তাই তারা কেবল মঞ্জুর হয় USAGE


10
আমি মনে করি এটি এ কারণেই তাদের অনুমোদনের অনুমতি দেওয়া হয়েছে। আপনি যদি কোনও ভুল ব্যবহারকারী বা / এবং পাসওয়ার্ড দিয়ে চেষ্টা করেন তবে আপনি প্রমাণীকরণ করতে পারবেন না। ইউএসএজেজে বিশেষাধিকার প্রাপ্ত কোনও ব্যবহারকারী 'সিলেক্ট 1 + 1' এবং 'প্রসেসলিস্ট দেখান' এর মতো নির্দিষ্ট এসকিউএল কমান্ড চালাতে পারেন।
মিরসিয়া ভুটকোভিচি

11

আমি GRANT USAGE on *.* TOএখানে অর্থ খুঁজে পেতে চেষ্টা করছিলাম । GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD passwordআপনি নীচের কমান্ড ( ) দ্বারা ব্যবহারকারী তৈরি করার সময় আমি তা নিশ্চিত করতে পারি CREATE:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 

আপনি যখন দান সঙ্গে বিশেষাধিকার GRANT, নতুন সুবিধা গুলি এটি উপরে যোগ করা হবে।


3

ক্লজটি ব্যবহার না করার সাথে সাথে মাইএসকিএল পাসওয়ার্ডগুলি IDENTIFIED BYফাঁকা মান হতে পারে, যদি খালি নয়, সেগুলি এনক্রিপ্ট করা হতে পারে। তবে হ্যাঁ USAGEসরল সংস্থান সীমাবদ্ধতা প্রদান করে কোনও অ্যাকাউন্ট পরিবর্তন করতে ব্যবহৃত হয় MAX_QUERIES_PER_HOUR, আবার এটি WITH ধারা ব্যবহার করে নির্দিষ্ট করা যেতে পারে GRANT USAGE(কোনও সুবিধা যুক্ত করা হয়নি) বা GRANT ALLআপনি GRANT USAGEবিশ্বব্যাপী স্তর, ডাটাবেস স্তর, টেবিল স্তর ইত্যাদি ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.