mysql权限管理及命令操作详解

管理员 发布于 4年前   522

一.进行权限管理的意义

当然是为了安全,防止删库跑路这样的事情,或者程序员的手抖.

权限管理时应该遵循以下原则:

1.只授予能满足需要的最小权限.比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。


2.创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。


二.mysql权限级别

  1. 表权限:   ‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’,                   ‘References’, ‘Index’, ‘Alter’;

  2. 列权限:   ‘Select’, ‘Insert’, ‘Update’, ‘References’;

  3. 过程权限:‘Execute’, ‘Alter Routine’, ‘Grant’;


三.mysql权限管理的两种方式

1.使用grant命令.

2.操作mysql数据库中的user表.


四.grant命令修改权限

grant all privileges on *.* to username@'%' identified by 'password';

详细解释上面这个命令:


1.ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限。

2.ON 用来指定权限针对哪些库和表。

3.*.* 中前面的号用来指定数据库名,后面的号用来指定表名。

4.TO 表示将权限赋予某个用户。

5.username@’%’ 表示username用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。

6.IDENTIFIED BY 指定用户的登录密码。

7.WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。


4.1.查看权限

    1.查看当前用户的权限

    show grants;

    2.查看某一个用户的权限

    show grants for 'root'@'localhost';

4.2.回收权限

    revoke select on *.* from test@'%';

4.3.修改用户密码

    SET PASSWORD FOR 'test'@'%' = PASSWORD('123456');

4.4.修改后刷新权限

    flush privileges;


五.修改mysql中的user表 这个就不讲了看图说话(自行百度查找)

在命令行连接上mysql之后,显示所有的数据库,连接mysql数据库,查看其中的user表,然后查看user表的字段类型.可以看到其中的字段代表的意义以及可取值.

对此数据表的操作将可以直接影响到用户的权限,具体操作方式与操作其他数据表并无区别,只需查看一下字段对应的意义即可,这里不再赘述.

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

该博客于2020-12-7日,后端基于go语言的beego框架开发
前端页面使用Bootstrap可视化布局系统自动生成

是我仿的原来我的TP5框架写的博客,比较粗糙,底下是入口
侯体宗的博客

      订阅博客周刊

文章标签

友情链接

HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群
侯体宗的博客