MySQL에서 사용자를 표시/나열하는 방법

MySQL에서 사용자를 표시/나열하는 방법

2022-05-17 last update

7 minutes reading mariadb mysql
MySQL 서버의 모든 사용자 목록을 가져와야 했던 적이 있습니까? 데이터베이스와 테이블을 표시하는 명령은 있지만 MySQL show users 명령은 없습니다. 이 자습서에서는 명령줄을 통해 MySQL 데이터베이스 서버의 모든 사용자 계정을 나열하는 방법을 설명합니다. 또한 주어진 데이터베이스에 대한 액세스 권한이 있는 사용자를 찾는 방법도 보여줍니다. 시작하기 전에 시스템에 이미 MySQL 또는 MariaDB 서버가 설치되어 있다고 가정합니다. 모든 명령은 MySQL 셸 내에서 루트 사용자로 실행됩니다. . MySQL 셸에 액세스하려면 다음 명령을 입력하고 메시지가 표시되면 MySQL 루트 사용자 암호를 입력합니다.
mysql -u root -p
MySQL 루트 사용자의 암호를 설정하지 않은 경우 -p 옵션을 생략할 수 있습니다. MySQL 루트 암호를 잊어버린 경우 these instructions을 따라 재설정할 수 있습니다.
.Show All MySQL Users 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개 이상의 열이 있습니다.A user account
MySQL에서 사용자 이름과 호스트 이름의 두 부분으로 구성됩니다. 테이블의 열에 대한 정보를 표시하려면 Password 문을 사용하십시오. 열 이름을 알면 선택한 데이터에 대해 쿼리를 실행할 수 있습니다. 예를 들어 암호에 대한 정보와 암호가 활성 또는 만료되었는지 여부를 포함하여 모든 MySQL 사용자 계정 목록을 얻으려면 다음 쿼리를 사용합니다.
SELECT User, Host, Password, password_expired FROM mysql.user;
특정 데이터베이스에 대한 액세스 권한이 있는 사용자 표시 , Select_priv이라는 데이터베이스에 대해 일정 수준의 액세스 권한이 있는 모든 사용자의 목록을 얻으려면 다음 쿼리를 사용합니다.
+----------------+-----------+-------------------------------------------+------------------+
| 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)
다음 쿼리는 모든 데이터베이스 및 관련 사용자에 대한 정보를 표시합니다.
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)
결론 이 자습서에서는 모든 MySQL 사용자 목록을 얻고 어떤 사용자가 특정 데이터베이스에 액세스할 수 있는지 알아보세요. 질문이 있으면 언제든지 댓글을 남겨주세요.