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

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 wang@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------------+
| 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 root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| 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: 只允许登录--其它什么也不允许做。

猜你喜欢

转载自blog.51cto.com/meiling/2156159