zoukankan      html  css  js  c++  java
  • mysql回收用户权限

    1.创建test1用户

    select password('test1');
    +-------------------------------------------+
    | password('test1')                         |
    +-------------------------------------------+
    | *06C0BF5B64ECE2F648B5F048A71903906BA08E5C |
    +-------------------------------------------+
    create user 'test1'@'localhost' identified by password '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C';

    这里create user中密码使用普通字符串时,则不需要password关键字,当使用password()函数加密之后的字符串时,则需要有password关键字

    2.授权

    grant select,create,delete on pmx.* to 'test1'@'localhost' with grant option;

    grant后面可以不用设置密码,因为在create user中已经设置好了。为数据库pmx下的所有表授权,用户的权限信息保存在mysql.db表中。

    3.收回权限

    revoke select,create,delete,grant option on pmx.*  from 'test1'@'localhost';

    或者

    revoke all privileges,grant option from 'test1'@'localhost';

    或者

    revoke all privileges on pmx.*  from 'test1'@'localhost';
    revoke grant option on pmx.* from 'test1'@'localhost';

    4. 授予什么权限就回收什么权限

    4.1 

    grant select on *.* to 'test1'@'localhost' with grant option;

    授予全局权限,权限信息保存在mysql.user表中

    select * from mysql.user where user='test1'G;
    *************************** 1. row ***************************
                      Host: localhost
                      User: test1
                  Password: *06C0BF5B64ECE2F648B5F048A71903906BA08E5C
               Select_priv: Y
               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: Y
           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: mysql_native_password
     authentication_string: 
          password_expired: N
    1 row in set (0.00 sec)

    4.2

    grant select on pmx.* to 'test1'@'localhost' with grant option;

    授予数据库权限,权限信息保存在mysql.db表中

    select * from mysql.dbG;
    *************************** 1. row ***************************
                     Host: localhost
                       Db: pmx
                     User: test1
              Select_priv: Y
              Insert_priv: N
              Update_priv: N
              Delete_priv: N
              Create_priv: N
                Drop_priv: N
               Grant_priv: Y
          References_priv: N
               Index_priv: N
               Alter_priv: N
    Create_tmp_table_priv: N
         Lock_tables_priv: N
         Create_view_priv: N
           Show_view_priv: N
      Create_routine_priv: N
       Alter_routine_priv: N
             Execute_priv: N
               Event_priv: N
             Trigger_priv: N
    1 rows in set (0.00 sec)

     4.3

    grant select on pmx.score to 'test1'@'localhost' with grant option;

    授予某张表权限,权限信息保存在mysql.tables_priv表中

    select * from mysql.tables_priv;
    +-----------+-----+-------+------------+----------------+---------------------+--------------+-------------+
    | Host      | Db  | User  | Table_name | Grantor        | Timestamp           | Table_priv   | Column_priv |
    +-----------+-----+-------+------------+----------------+---------------------+--------------+-------------+
    | localhost | pmx | test1 | score      | root@localhost | 0000-00-00 00:00:00 | Select,Grant |             |
    +-----------+-----+-------+------------+----------------+---------------------+--------------+-------------+

    4.4

    grant select(grade) on pmx.score to 'test1'@'localhost' with grant option;

    授予某个字段的权限,权限信息保存在mysql.columns_priv表中

    select * from mysql.columns_priv;
    +-----------+-----+-------+------------+-------------+---------------------+-------------+
    | Host      | Db  | User  | Table_name | Column_name | Timestamp           | Column_priv |
    +-----------+-----+-------+------------+-------------+---------------------+-------------+
    | localhost | pmx | test1 | score      | grade       | 0000-00-00 00:00:00 | Select      |
    +-----------+-----+-------+------------+-------------+---------------------+-------------+

    当使用

    revoke all privileges on *.* from 'test1'@'localhost';

     回收的只是全局的权限,test1用户其他的权限,比如对pmx数据库的权限,对score表的权限,对某个字段的权限仍然持有。 所以为了回收用户的所有权限,使用

    revoke all privileges,grant option from 'test1'@'localhost';

    这是条固定语法,all privileges和grant option必须都有 

  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/bibiafa/p/9407404.html
Copyright © 2011-2022 走看看