欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查看MYSQL数据库中所有用户及拥有权限

程序员文章站 2024-03-09 12:35:59
...

1、查看MYSQL数据库中所有用户

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+---------------------------------+
| query                           |
+---------------------------------+
| User: 'root'@'10.4.3.10';    |
| User: 'root'@'10.4.32.15';    |
| User: 'root'@'10.4.35.16';    |
| User: 'root'@'::1';             |
| User: 'wang'@'localhost'; |
| User: 'root'@'localhost';       |
| User: 'bing'@'localhost';  |
+---------------------------------+
7 rows in set (0.00 sec)

2、查看数据库中具体某个用户的权限

mysql> show grants for 'wang'@'localhost';  
+-------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'baobaowang'@'localhost' IDENTIFIED BY PASSWORD '*e9d0656c39ce83a05c11aadc5619f605f977c368' |
| GRANT ALL PRIVILEGES ON `bing`.* TO 'wang'@'localhost'                                                 |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for 'root'@'localhost';      
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*96860be2538db7e343a108b32e0e54e64eede295' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION                                                                           |
+----------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> select * from mysql.user where user='wang' \G 
*************************** 1. row ***************************
                  Host: localhost
                  User: baobaowang
              Password: *7295DE9CF4976C84B2B2AC39620C255E885B16A0
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
       References_priv: N
            Index_priv: N
            Alter_priv: N
          Show_db_priv: N
            Super_priv: N
 Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: 
 authentication_string: NULL
1 row in set (0.00 sec)

3、Grant 用法

GRANT USAGE ON *.* TO 'cuz'@'localhost' IDENTIFIED BY PASSWORD '*4585fa1158f37e2c1d7e41e4e309714a3fdd7826';
GRANT ALL PRIVILEGES ON `cuz`.* TO 'cuz'@'localhost';

建立一个只可以在本地登陆的,不能操作用的用户名 cuz 密码为 ***** 已经加密了的
然后第二句的意思是 ,给这个cuz用户操作cuz数据库的所有权限

使用GRANT
GRANT命令用来建立新用户,指定用户口令并增加用户权限。其格式如下:

mysql> GRANT <privileges> ON <what>
-> TO <user> [IDENTIFIED BY "<password>"]
-> [WITH GRANT OPTION];

在这个命令中有许多待填的内容。让我们逐一地对它们进行介绍,并最终给出一些例子以让你对它们的协同工作有一个了解。

<privileges>是一个用逗号分隔的你想要赋予的MySQL用户权限的列表。你可以指定的权限可以分为三种类型:

*数据库/数据表/数据列权限:*
Alter: 修改已存在的数据表(例如增加/删除列)和索引。
Create: 建立新的数据库或数据表。
Delete: 删除表的记录。
Drop: 删除数据表或数据库。
INDEX: 建立或删除索引。
Insert: 增加表的记录。
Select: 显示/搜索表的记录。
Update: 修改表中已存在的记录。

*全局管理MySQL用户权限:*
file: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。

*特别的权限:*
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。

转载于:https://blog.51cto.com/meiling/2156159