যে সমস্ত ব্যবহারকারীরা একটি ডাটাবেস (মাইএসকিউএল) অ্যাক্সেস করতে পারেন তা কীভাবে জানবেন?


19

যে সমস্ত ব্যবহারকারীরা একটি ডাটাবেস অ্যাক্সেস করতে পারেন তা কীভাবে জানবেন?

উত্তর:


14

প্রশাসক ব্যবহারকারী হিসাবে (সাধারণত রুট হিসাবে) মাইএসকিএল উদাহরণে সংযুক্ত হন এবং নিম্নলিখিত কমান্ডটি দিন ...

select user from mysql.db where db='DB_NAME';

আমি কেবল এটি একটি লাইভ মারিয়াডিবি (মাইএসকিউএল কাঁটাচামচ) এর বিপরীতে চালিয়েছি এবং এটি 2 টি ফাঁকা সারি ফিরে এসেছে।
ক্রিস এস

1
আপনার ডাটাবেসের নাম কী? আপনার ডিবি এর নামে আপনাকে "DB_NAME" প্রতিস্থাপন করতে হবে।
ব্যবহারকারী 79644

select user from mysql.dbযোগ্যতা ছাড়াই দৌড়ানো 2 টি ফাঁকা সারিও ফিরে আসে।
ক্রিস এস

মারিয়াডিবি এবং মাইএসকিউএল এর মধ্যে পার্থক্যগুলি কী তা নিশ্চিত নন, তবে এই কোয়েরিটি একটি স্ট্যান্ডার্ড মাইএসকিউএল 5 ইনস্টলেশনে প্রত্যাশা অনুযায়ী চলে runs
আরভিএফ

এটি ওপি-র উত্তরের অংশ মাত্র। Mysql.user.db ক্ষেত্রে ওয়াইল্ডকার্ড অক্ষর থাকতে পারে যা বেশ কয়েকটি ডাটাবেসের সাথে মেলে। আপনার প্রস্তাবিত ক্যোয়ারী ব্যবহার করে সেগুলি মিস করে। dev.mysql.com/doc/refman/5.0/en/grant.html
ব্যবহারকারী 4514

10

ব্যবহারকারীর 647964৪৪ এর উত্তর ব্যবহারকারীদের ডাটাবেস-স্তরের সুবিধাগুলি পেয়েছে তবে কেবল টেবিল-স্তর, কলাম-স্তর বা পদ্ধতি-স্তরের সুযোগ-সুবিধা সহ ব্যবহারকারীদের মিস করবে miss এগুলির সকল সন্ধান করতে নিম্নলিখিত বিবৃতি ব্যবহার করুন:

SELECT user,host FROM db WHERE db='name';
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';

কমপক্ষে মাইএসকিউএল ৫.৫-তে, এটি কলাম-স্তরের সুবিধাগুলি থেকে বোঝা যাচ্ছে যে আপনার টেবিল-স্তরের সুবিধা রয়েছে। টেবিল-স্তরের সুবিধাগুলি থাকা আপনার বোঝা যাচ্ছে না যে আপনার কাছে ডাটাবেস-স্তর সুবিধা রয়েছে। পদ্ধতি-স্তরের সুবিধাগুলি সম্পর্কে নিশ্চিত নয়।


1
এটি উত্তরের একটি অংশ মাত্র। Mysql.user.db ক্ষেত্রে ওয়াইল্ডকার্ড অক্ষর থাকতে পারে যা বেশ কয়েকটি ডাটাবেসের সাথে মেলে। আপনার প্রস্তাবিত ক্যোয়ারী ব্যবহার করে সেগুলি মিস করে। dev.mysql.com/doc/refman/5.0/en/grant.html
ব্যবহারকারী 4514

কোন ডাটাবেস? আমি পাচ্ছিERROR 1046 (3D000): No database selected
ব্যবহারকারী 124384

@ user124384 উত্তরে যা বলা হয়নি তা হ'ল আপনার mysqlডাটাবেসটি ব্যবহার করা উচিত । মাইএসকিউএল দ্বারা ব্যবহৃত সমস্ত ডেটা সেখানেই সংরক্ষণ করা হয়। হয় USE mysql;টেবিলের নামগুলিতে ডাটাবেস নাম যুক্ত করার কমান্ড দিন , যেমন FROM mysql.dbবাFROM mysql.tables_priv
জিপসি স্পেলউইভার

8
# current users that access the db
mysql> show processlist;
+-----+------+-----------+------+---------+------+-------+------------------+
| Id  | User | Host      | db   | Command | Time | State | Info             |
+-----+------+-----------+------+---------+------+-------+------------------+
| 214 | root | localhost | NULL | Query   |    0 | NULL  | show processlist |
+-----+------+-----------+------+---------+------+-------+------------------+

# who can access what at anytime and his privilege level
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+

# what privileges are available
mysql> show privileges;

2
অনুদানগুলি কেবল বর্তমান (লগ ইন) ব্যবহারকারীর অনুদানগুলি দেখায়
এনএল-এক্স

মূল হিসাবে আপনি এর জন্য অনুদানগুলিও করতে পারেন
রোয়ান হকিন্স

2

আপনার মনে রাখতে হবে, ডাটাবেসের জন্য মাইএসকিউএলে GRANTওয়াইল্ডকার্ডের অক্ষর থাকতে পারে । এটিতে LIKEক্যোয়ারী ব্যবহার করে হিসাব করতে হবে :

SELECT user,host FROM db WHERE 'name' LIKE db;
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.