كيفية الحصول على قائمة حسابات المستخدمين باستخدام سطر الأوامر في MySQL؟

StackOverflow https://stackoverflow.com/questions/1135245

  •  16-09-2019
  •  | 
  •  

سؤال

أنا أستخدم الأداة المساعدة لسطر الأوامر MySQL ويمكن أن تنقل عبر قاعدة بيانات. الآن أحتاج إلى رؤية قائمة حسابات المستخدمين. كيف يمكنني أن أفعل هذا؟

أنا أستخدم إصدار MySQL 5.4.1.

هل كانت مفيدة؟

المحلول

استخدم هذا الاستعلام:

SELECT User FROM mysql.user;

والتي ستخرج طاولة مثل هذا:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

كما ماثيو شارلي يشير في التعليقات على هذه الإجابة, ، يمكنك تجميع من قبل User عمود إذا كنت ترغب فقط في رؤية أسماء المستخدمين الفريدة.

نصائح أخرى

أجد هذا التنسيق الأكثر فائدة لأنه يتضمن حقل المضيف مهم في MySQL للتمييز بين سجلات المستخدمين.

select User,Host from mysql.user;

حساب مستخدم يشتمل على اسم المستخدم والوصول إلى مستوى المضيف.

لذلك، هذا هو الاستعلام الذي يعطي جميع حسابات المستخدمين

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;

لتجنب تكرار المستخدمين عند الاتصال من أصل مختلف:

select distinct User from mysql.user;

إذا كنت تشير إلى مستخدمي MySQL الفعلي، فحاول:

select User from mysql.user;

يخزن MySQL معلومات المستخدم في قاعدة البيانات الخاصة بها. اسم قاعدة البيانات هو MySQL. وبعد داخل هذه البيانات، معلومات المستخدم في جدول، مجموعة بيانات، اسمه user. وبعد إذا كنت ترغب في معرفة ما يتم إعداده المستخدمين في جدول مستخدمي MySQL، فقم بتشغيل الأمر التالي:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+
SELECT * FROM mysql.user;

إنه طاولة كبيرة حتى ترغب في أن تكون أكثر انتقائية حول الحقول التي تختارها.

تسجيل الدخول إلى MySQL كجذر واكتب بعد الاستعلام

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+

يمر جدول MySQL.DB أكثر أهمية في تحديد حقوق المستخدم. أعتقد أن إدخال الدخول قيد الإنشاء إذا ذكرت جدول في أمر المنح. في حالتي، أظهر جدول MySQL.Users أي أذونات للمستخدم عندما كان من الواضح أنه كان قادرا على الاتصال والحديد، إلخ.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...

يمكنني استخدام هذا لفرز المستخدمين، وبالتالي فإن المضيفين المسموح بهم أكثر سهولة في المكان:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;

بيتر وجيسي صحيحة ولكن فقط تأكد من تحديد MySQL DB أولا أولا.

use mysql;

select User from mysql.user;

يجب أن تفعل خدعة الخاص بك

هذا يعرض قائمة المستخدمين الفريدين:

SELECT DISTINCT User FROM mysql.user;
$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

يؤدي تنفيذ هذا الأمر الموجود في موجه Linux أولا إلى طلب كلمة مرور مستخدم جذر MySQL، على توفير كلمة مرور صحيحة، سيقوم بطباعة جميع مستخدمي قاعدة البيانات إلى الملف النصي.

لقد وجدت أنه أكثر فائدة أكثر لأنه يوفر معلومات إضافية حول امتيازات DML و DDL

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;
SELECT User FROM mysql.user;

استخدم الاستعلام أعلاه للحصول على مستخدمي MySQL

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top