mysql回收用户权限

1.创建test1用户

select password('test1');

按 Ctrl+C 复制代码

 

按 Ctrl+C 复制代码

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.db\G;
*************************** 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必须都有 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值