mysql权限怎么用 mysql的权限分为哪四类

如何给mysql用户分配权限1,Mysql下创建新的用户
语法:
1.create user 用户名 identified by '密码';
例:create user xiaogang identified by '123456';
新创建的用户,默认情况下是没有任何权限的 。
2. 如何给用户分配权限
语法:
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'%';
这个时候 xiaogang 就拥有mysql权限怎么用了 所有权限mysql权限怎么用了
3 如何更精准的控制用户的权限呢mysql权限怎么用?
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限mysql权限怎么用;
grant select on temp.temp1 to 'xiaogang'@'%';//这个时候 xiaogang 就具有查询temp小的temp1的权限了 。
mysql 权限设置背景
在mysql权限怎么用了解动态权限之前 , 我们先回顾下 MySQL 的权限列表 。
权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限 。我们看到有一个特殊的 SUPER 权限,可以做好多个操作 。比如 SET 变量,在从机重新指定相关主机信息以及清理二进制日志等 。那这里可以看到,SUPER 有点太过强大 , 导致mysql权限怎么用了仅仅想实现子权限变得十分困难,比如用户只能 SET 变量,其他的都不想要 。那么 MySQL 8.0 之前没法实现,权限的细分不够明确,容易让非法用户钻空子 。
那么 MySQL 8.0 把权限细分为静态权限和动态权限,下面我画了两张详细的区分图,图 1 为静态权限 , 图 2 为动态权限 。
【mysql权限怎么用 mysql的权限分为哪四类】图 1- MySQL 静态权限的权限管理图
图 2-动态权限图
那我们看到其实动态权限就是对 SUPER 权限的细分 。SUPER 权限在未来将会被废弃掉 。
我们来看个简单的例子,
比如,用户 'ytt2@localhost', 有 SUPER 权限 。
mysql show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost|+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)
但是现在我只想这个用户有 SUPER 的子集,设置变量的权限 。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉 。
mysql grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)
我们看到这个 WARNINGS 提示 SUPER 已经废弃了 。
mysql show warnings;
+---------+------+----------------------------------------------+
| Level| Code | Message|
+---------+------+----------------------------------------------+
| Warning | 1287 | The SUPER privilege identifier is deprecated |
+---------+------+----------------------------------------------+
1 row in set (0.00 sec)`
mysql show grants for ytt2@'localhost';
+-----------------------------------------------------------------------------------+
| Grants for ytt2@localhost|
+-----------------------------------------------------------------------------------+
| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost|
| GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |
+-----------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

推荐阅读