Mysql просмотр пользователей linux

How to Get List of MySQL User Accounts in Linux

The name MySQL needs no introduction. Most database administrators and users are well aware of its robustness, efficiency, and reliability as an effective RDBMS (Relational Database Management System).

The MySQL attribute; reliability, is just a name unless fully exploited and implemented. The reliability of the MySQL security metric is dependent on several administrative aspects. One of them is the management of existing database users and their individual permission levels.

As a database administrator, you want to be able to flexibly preview all registered database users; whether active or inactive and audit their permission privileges so as not to compromise the integrity of your database system.

Prerequisites

  • Be comfortable with the Linux command line environment and be a Sudoer user.
  • Be running a MySQL or MariaDB server on your Linux operating system.

MySQL’s acquisition by Oracle lets it exist as both Community Edition software and Enterprise Edition software. MariaDB is an open-source fork of MySQL. Whether you are using MariaDB or MySQL, their database commands manual implementation is one and the same.

Install MySQL Database Server in Linux

Depending on your Linux operating system distribution, you can install MySQL or MariaDB from either or the following installation commands:

Install MySQL in Linux

$ sudo apt-get install mysql-server [On Debian, Ubuntu and Mint] $ sudo yum install mysql-server [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo pacman -S mysql-server [On Arch Linux] $ sudo zypper install mysql-server [On OpenSUSE]

Install MariaDB in Linux

$ sudo apt-get install mariadb-server [On Debian, Ubuntu and Mint] $ sudo yum install mariadb-server [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo pacman -S mariadb-server [On Arch Linux] $ sudo zypper install mariadb-server [On OpenSUSE]

Secure MySQL Database Server in Linux

Once installed, you need to secure the MySQL server installation by setting the new root password, removing anonymous users, disabling root access, removing the test database, and reloading privilege.

$ sudo mysql_secure_installation

Secure MySQL Server Installation

Creating MySQL User Accounts

We need to have several users present in our RDBMS for this article to be effective. The syntax for creating a MySQL user account is as follows:

CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password';

To create a database user tied to a specific database hostname, the “account_name” portion of the above syntax should be something like:

Читайте также:  Sms шлюз для linux

If you want the database user to freely connect to the MySQL DB server from any remote host/machine, then only use:

The implementation of “username” and “hostname” defined by special characters need to be quoted.

Now let us create some DB users:

With the MySQL client tool, access your MySQL server as a root user:

Enter the earlier setup root password:

Connect to MySQL Database

First, let us list the current MySQL user accounts in our database system:

MariaDB [(none)]> select user from mysql.user;

List MySQL Users

As you can see, we only have the default root user whose password we set up earlier.

Let us create several DB users, some that can remotely connect (username) to this database server and others that only locally connect ([email protected]).

MariaDB [(none)]> create user [email protected] identified by 'Sec1pass!'; MariaDB [(none)]> create user LinuxShellTipster identified by 'Min1pass!'; MariaDB [(none)]> create user LinuxShellTips_tutor identified by 'Min1pass!';

Listing MySQL User Accounts

Let us first list all the users present on the database:

MariaDB [(none)]> SELECT user FROM mysql.user;

List MySQL User Accounts

We might also need to list more DB user-related information like account password expiration status, and linked hostname.

MariaDB [(none)]> SELECT user, host, account_locked, password_expired FROM user;

List MySQL User Accounts Info

The users that are not under the host “localhost” can access this database server from anywhere. To get the current DB user, implement the following command:

MariaDB [(none)]> SELECT user();

List MySQL Current User

This is the currently active user. You could alternatively use the command:

MariaDB [(none)]> SELECT current_user();

Quit the MySQL shell and log in as a different user:

MariaDB [(none)]> quit; $ mysql -u LinuxShellTips -p

MySQL User Login

Since you can have more than one active database user, to list them, you will need a MySQL command similar to the following:

MariaDB [(none)]> SELECT user, host, db, command FROM information_schema.processlist;

The key points to note while listing MySQL user account information is the table name (e.g user) that these users are under, and the database name (e.g mysql) that holds that table. See you at the next tutorial.

Источник

Как показать / составить список пользователей в MySQL

Вам когда-нибудь нужно было получить список всех пользователей на вашем сервере MySQL? Есть команды для отображения баз данных и таблиц, но нет команды MySQL show users .

В этом руководстве объясняется, как вывести список всех учетных записей пользователей на сервере базы данных MySQL с помощью командной строки. Мы также покажем вам, как узнать, какие пользователи имеют доступ к данной базе данных.

Читайте также:  Установка dns сервера astra linux

Подготовка

Мы предполагаем, что в вашей системе уже установлен сервер MySQL или MariaDB.

Все команды выполняются внутри оболочки MySQL от имени пользователя root. Чтобы получить доступ к оболочке MySQL, введите следующую команду и при появлении запроса введите пароль root-пользователя MySQL:

Если вы не установили пароль для своего пользователя root MySQL, вы можете опустить опцию -p .

Показать всех пользователей MySQL

MySQL хранит информацию о пользователях в таблице с именем user в базе данных mysql .

Чтобы получить список всех учетных записей пользователей MySQL, используйте SELECT для извлечения всех строк из таблицы mysql.users :

SELECT User, Host FROM mysql.user;

Результат должен выглядеть примерно так:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec) 

Приведенная выше команда показывает только два столбца из таблицы mysql.user ( User и Host ). Эта таблица содержит более 40 столбцов, таких как Password , Select_priv , Update_priv и т. Д.

Используйте команду desc mysql.user; оператор для отображения информации о столбцах таблицы. Узнав имя столбца, вы можете запустить запрос к выбранным данным.

Например, чтобы получить список всех учетных записей пользователей MySQL, включая информацию о пароле и о том, активен он или просрочен, вы должны использовать следующий запрос:

SELECT User, Host, Password, password_expired FROM mysql.user;
+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec) 

Показать пользователей, имеющих доступ к конкретной базе данных

Информация о привилегиях уровня базы данных хранится в таблице mysql.db .

Вы можете запросить таблицу, чтобы узнать, какие пользователи имеют доступ к данной базе данных и уровень привилегий.

Например, чтобы получить список всех пользователей, имеющих некоторый уровень доступа к базе данных с именем db_name вы должны использовать следующий запрос:

SELECT * FROM mysql.db WHERE Db = 'db_name'G;
*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec) 

Чтобы получить информацию только об учетных записях пользователей, имеющих доступ к данной базе данных, без отображения используемых привилегий:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'
+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+ 

Следующий запрос покажет вам информацию обо всех базах данных и связанных пользователях:

SELECT db, host, user FROM mysql.db;
+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+ 

Выводы

В этом руководстве мы показали, как получить список всех пользователей MySQL и узнать, какие пользователи имеют доступ к конкретной базе данных.

Читайте также:  Linux which dhcp server

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Список пользователей в MySQL

В каждой СУБД всегда присутствует возможность посмотреть список пользователей зарегистрированных на сервере СУБД. MySQL также не лишена данной особенности. Помимо вывода списка всех пользователей зарегистрированных в MySQL дополнительно можно вывести имя текущего пользователя а также список всех пользователей которые подключены к серверу MySQL в данный момент.

В данной статье будет рассмотрено как посмотреть список пользователей MySQL присутствующих на сервере в операционной системе Ubuntu 20.04.

Как посмотреть список пользователей MySQL

Как и в любой другой СУБД в MySQL можно посмотреть список всех доступных пользователей.

Шаг 1. Вход в консоль MySQL

Для начала необходимо войти в консоль MySQL. Для этого в терминале необходимо ввести следующую команду, где alex имя вашего пользователя:

3DILRfg4f8EzblbbZvVGLMAAAAASUVORK5CYII=

Если вход в оболочку осуществляется впервые, то необходимо войти под пользователем root. Далее отобразится фраза с предложением ввести пароль пользователя. На этом этапе необходимо ввести пароль именно пользователя БД, а не пользователя, присутствующего в операционной системе. В качестве безопасности пароль не отображается при вводе в терминале.

Шаг 2. Просмотр доступных полей

Пользователи в MySQL хранятся в базе данных под названием mysql в таблице user. Для того чтобы получить список пользователей MySQL нужно вывести содержимое этой таблицы. Однако из-за большого числа столбцов, вывод команды не отображается корректно. В этом случае вывести список пользователей в читаемом формате можно задав необходимые столбцы.

Таблица user имеет 51 столбец. Выполнив SQL запрос представленный ниже, можно получить наименования и описания всех столбов в этой таблице.

x0FZ0VQIC1AAAAAElFTkSuQmCC

В данном случае для просмотра всех доступных пользователей можно вывести всего лишь один столбец — user при помощи SQL запроса:

SELECT user FROM mysql.user;

f9g8hhekoo07gAAAABJRU5ErkJggg==

Как посмотреть текущего пользователя

Чтобы узнать из-под какого пользователя запущена текущая сессия в СУБД необходимо выполнить следующий SQL запрос:

IE2EAAAAASUVORK5CYII=

Также можно выполнить специальную команду, присутствующую в оболочке MySQL — status. Данная команда отображает такую информацию как версию сервера MySQL, номер подключения, включен ли SSL, а также содержит параметр Current user — в котором отображается текущий пользователь. Вывод команды можно увидеть ниже:

vG3FopZ2ZpNwL92BE5j7JdQcnaNVqALZeSERh46iLj0MYJ12kk26XRLMTMGYe4hQIHTlw4pkJdQ9b0od6QZ1MIC+qISyJSFofvAw8huuqKjyFlPmO5aicg0CoYtF1VEAtnjMKCyNhUUxkI03Hd9f+38HDIOPHFsTRQAAAABJRU5ErkJggg==

Как посмотреть активных пользователей

Для вывода всех пользователей, которые подключены к СУБД в текущий момент необходимо выполнить следующий SQL запрос:

SELECT SUBSTRING_INDEX(host, ‘:’, 1) AS host_short, GROUP_CONCAT(DISTINCT user) AS users, COUNT(*) AS threads FROM information_schema.processlist GROUP BY host_short ORDER BY COUNT(*), host_short;

sMht1yAB5R8HgYlJEdmLp2fkHdBiC0bbmmcGQzoyf8fuuVPLPQ57Y0AAAAASUVORK5CYII=

Выводы

В данной статье было рассмотрено как вывести список пользователей MySQL. Сделать это можно несколькими способами. Данная операция является одной из самых распространенных при администрировании сервера СУБД. Если у вас остались вопросы задавайте их в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector