mysql5.7 权限检查

用户---------》MySQL服务器

分为两个阶段

1.你有没有权限连接到MySQL
2.你有没又权限执行此操作(select,update等)

对于:

1.服务器如何判断用户有没有权连接上来?

1.你从哪里来---》Host
2.你的用户名---》User
3.你的密码------》Password
登录的案例:>mysql	-h	127.0.0.1		-u 	root		-p 	********************
-h 指的是User表的Host	---(连接的地址IP)
-u 指的是User表的User  ---(连接MySQL的用户名)
-p 指的是User表的Password ---(用户名的密码)

注意:user表是mysql在库中
在这里插入图片描述
在这里插入图片描述

2.账户登录到mysql,然后就是验权------------user表

Mysql库中的
user表--------》记录MySQL的用户
db表------------》判断用户是否有某个数据库的权限
tables_priv表------》判断用户是否拥有某个库的某张表的权限

db表:

mysql> select * from db\G;
*************************** 1. row ***************************
                 Host: localhost           允许连接的ip
                   Db: performance_schema  数据库
                 User: mysql.session  	   用户
          Select_priv: Y            	   查询权限
          Insert_priv: N				   插入数据权限	
          Update_priv: N				   更新数据权限
          Delete_priv: N				   删除数据权限
          Create_priv: N				   创建数据库、表或索引
            Drop_priv: N				   删除表
           Grant_priv: N				   可以将自己拥有的权限赋给其他用户
      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				   确定用户能否创建和删除触发器
*************************** 2. row ***************************
                 Host: localhost
                   Db: sys
                 User: mysql.sys
          Select_priv: N
          Insert_priv: N
          Update_priv: N
          Delete_priv: N
          Create_priv: N
            Drop_priv: N
           Grant_priv: N
      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: Y

user表:user表中的记录的用户的增,删,改,查都是全局的性质

mysql> select * from user\G;
*************************** 1. row ***************************
		  ========用户列=============
                  Host: localhost		允许用户连接的ip
                  User: root			当前用户
          ========权限列=====(user表的权限列包括Select_priv、 Insert_priv等以priv结尾的字段。
          这些字段的值只有Y和N。
          Y表示该权限可以用到所有数据库上;
          N表示该权限不能用到所有数据库上;
          通常,可以使用GRANT语句Wie用户赋予一些权限,
          也可以通过Update语句更新user表的方式来设置权限;不过,
          修改user表之后,一定要执行一下FLUSH PRIVILEGES)========
           Select_priv: Y				查询权限
           Insert_priv: Y				插入权限
           Update_priv: Y				更新权限
           Delete_priv: Y				删除权限
           Create_priv: Y				创建数据库、表或索引
             Drop_priv: Y				删除表
           Reload_priv: Y				可以用FLUSH
         Shutdown_priv: Y				关闭MySQL
          Process_priv: Y				显示连接进程和中断连接进程
             File_priv: Y				载入文件
            Grant_priv: Y				可以将自己拥有的权限赋给其他用户
       References_priv: Y				建立约束
            Index_priv: Y				建立索引
            Alter_priv: Y				更改数据表
          Show_db_priv: Y				列出数据库
            Super_priv: Y				执行kill线程,change master、purge master logs、set global等命令的权限
 Create_tmp_table_priv: Y				创建临时数据表
      Lock_tables_priv: Y				锁定表格
          Execute_priv: Y				执行函数或存储过程
       Repl_slave_priv: Y				在Slave里的特殊权限
      Repl_client_priv: Y				可以检查Masters和Slaves
      Create_view_priv: Y				创建视图
        Show_view_priv: Y				列出视图
   Create_routine_priv: Y				创建函数或存储
    Alter_routine_priv: Y				更改函数或存储过程
      Create_user_priv: Y				创建用户
            Event_priv: Y				确定用户能否创建、修改和删除事件
          Trigger_priv: Y				确定用户能否创建和删除触发器
Create_tablespace_priv: Y				创建表空间
		========安全列==(说明:ssl用于加密;x509标准可以用来标识用户。
		普通的发行版都没有加密功能。
		可以使用SHOW VARIABLES LIKE 'have_openssl'语句来查看是否具有ssl功能。
		如果取值为DISABLED,那么则没有ssl加密功能。)===========
              ssl_type: 
            ssl_cipher: 
           x509_issuer: 
          x509_subject: 
         =======资源控制列==(默认值为0,表示无限制)========
         max_questions: 0				每小时可以允许执行多少次查询;
           max_updates: 0				每小时可以允许执行多少次更新
       max_connections: 0				每小时可以建立多少连接
  max_user_connections: 0				单个用户可以同时具有的连接数
                plugin: mysql_native_password
 authentication_string: *836D194EFBBFB6F5ACD8F91C975F04F2B911C395
      password_expired: N
 password_last_changed: 2019-09-25 06:05:51
     password_lifetime: NULL
        account_locked: N

3.账户管理

3.1新增用户–赋予权限

格式:

Grant [权限1,权限2,权限3...] on *.* 	to	user@'host’ identified by ‘password’;
grant 权限1,权限2  on 数据库.数据表 user@’host’ identified by ‘password’;
常用权限:all,create,drop,insert,delete,update,select

例子1:

分配所有数据库和权限
mysql> grant all on *.* to 'test_user'@'localhost' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

例子2:

创建的用户----只有test库的权限,只有select权限
mysql> grant select on test.* to 'user_test'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

执行数据更新不了
在这里插入图片描述例子3:
针对test库做授权
给用户分配select,update,delete权限

mysql> grant select,update,delete on test.* to 'user_test'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

截图:
在这里插入图片描述
3.2回收权限

格式:

revoke  [权限1,权限2,权限3...] on *.*  from user@'host’;
grant 权限1,权限2  on 数据库.数据表 user@’host’ ;
常用权限:all,create,drop,insert,delete,update,select

demo1:

mysql> revoke delete on test.* from user_test@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述
3.3针对某个库的表做权限分配

tables_priv表------》判断用户是否拥有某个库的某张表的权限

mysql> grant select,update,delete,insert on test.test_row to user_test_row@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

截图:
在这里插入图片描述
客户端截图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值