MySQL逻辑结构(三)——权限管理

注:本文章是作者学生时期所作,如有错误,请大佬指出

基本概念:

查看MySQL的所有权限:show  privileges ;

大体分类:

(1):  CREATE、 DROP、ALTER ,可以创建、删除、修改数据库和表。
(2): SELECT INSERT UPDATE、 DELETE 权限 允许在数据库现有的表上增删改查的操作
(3): INDEX 权限   允许创建或删除索引, INDEX 适用于已 有的表
(4): CREATE ROUTINE、 ALTER ROUTINE、 EXECUTE  用来创建、删除、执行的 函数
(5): GRANT 权限 允许授权给其他用户

示意图:

MySQL逻辑结构(三)——权限管理_第1张图片

授予权限的原则:

(1): 只授予能 满足需要的最小权限 ,防止用户干坏事。比如用户只是需要查询,那就只给 select 权限就可以了,不要给用户赋予update insert 或者 delete 权限
(2):创建用户的时候 限制用户的登录主机 ,一般是限制成指定 IP 或者内网 IP 段。
(3):为每个用户 设置满足密码复杂度的密码
(4): 定期清理不需要的用户 ,回收权限或者删除用户。

权限管理:

授予权限:

GRANT  权限1, 权限2,…权限n  ON  数据库名称.表名称  TO  用户名@' % | localhost '

例:

(1) grant  all  on  SSM.*  to  zhangsan@'%';   
          将 SSM 数据库中所有表的所有权限都给  zhangsan@'%' 用户
(2):grant  insert, delete, update, select   on  `SQLAdvanced`.`test_index` to  'zhangsan'@'%'
        将 SQLAdvanced数据库下的 test_index 表的增删改查权限赋给用户 'zhangsan'@'%'

查看权限:

show  grants;       查看当前用户权限
show  grants  for  用户名@' % | localhost';      查看指定用户权限

收回权限:

REVOKE  权限1,权限2,…权限n  ON  数据库名称.表名称  FROM  用户名@用户地址;

例:

revoke  all  on  SSM.*  from  zhangsan@' % ';   
收回 zhangsan@' % ' 用户对于 SSM 数据库中所有表的所有权限

权限表:

User表:

字段:

权限列:
Grant_priv字段         表示是否拥有 GRANT 权限
Shutdown_priv        表示是否拥有停止MySQL服务的权限
Super_priv字段        表示是否拥有超级权限
Execute_priv:  表示是否拥有EXECUTE权限。拥有EXECUTE权限,可以执行存储过程和函数。
Select_priv , Insert_priv,Update_priv等  表示是否拥有对所有表的增删改查的权限
注: 除 root 用户外,其他用户默认都是 false

表字段示意图:

MySQL逻辑结构(三)——权限管理_第2张图片

db表:

字段:

用户列 :
 db表用户列有3个字段,分别是Host、User、Db。这3个字段分别表示主机名、用户名和数据库名。表示从某个主机连接某个用户对某个数据库的操作权限,这3个字段的组合构成了db表的主键。
权限列:
Create_routine_priv和Alter_routine_priv这两个字段决定用户是否具有创建和修改存储过程的权限。

字段示意图:

MySQL逻辑结构(三)——权限管理_第3张图片

你可能感兴趣的:(MySQL,数据库,mysql,database,sql)