本文介绍: 使用REVOKE收回权限之后,用户账户的记录将从dbhosttables_privcolumns_priv表中删除,但是用户账户记录仍然在user表中保存(删除user表中的账户记录使用DROP USER语句,在将用户账户从user表删除之前,应该收回相应用户所有权限。给用户授权方式有 2 种,分别是通过角色赋予用户给用户授权(mysql8.0的特性) 和 直接给用户授权。用户是数据库使用者我们可以通过给用户授予访问数据库资源权限,来控制用户对数据库访问消除安全隐患

使用命令可以展示mysql存在权限

show privileges;

给用户授权的方式有 2 种,分别是通过角色赋予用户给用户授权(mysql8.0的特性) 和 直接给用户授权。用户是数据库使用者我们可以通过给用户授予访问数据库资源权限,来控制用户对数据库访问消除安全隐患
授权命令:该权限如果发现没有该用户,则会直接新建一个用户。

GRANT 权限1,权限2,权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令];

举例:
1、给li4用户用本地命令行方式,授予atguigudb这个库下的所有表的插删改查权限

GRANT SELECT,INSERT,DELETE,UPDATE ON atguigudb.* TO li4@localhost ;

2、授予通过网络方式登录的joe用户 ,对所有库所有表的全部权限密码设为123。如果需要赋予包括grant权限,添加参数“WITH GRANT OPTION”这个选项即可表示该用户可以自己拥有的权限授权给其他用户可以使用grant重复给用户添加权限。

GRANT ALL PRIVILEGES ON *.* TO joe@'%' IDENTIFIED BY '123' with grant option;

我们开发应用时候,经常会遇到一种需求就是要根据用户的不同,对数据进行横向和纵向的分组
1、所谓横向的分组就是指用户可以接触到的数据范围比如可以看到哪些表的数据
2、所谓纵向的分组,就是指用户对接触到的数据访问什么程度,比如能看、能改,甚至是删除

查看权限

查看当前用户的权限

SHOW GRANTS; 或者 SHOW GRANTS FOR CURRENT_USER; 或者 SHOW GRANTS FOR CURRENT_USER();

查看某些用户的权限

SHOW GRANTS FOR 'user'@'主机地址' ;

收回权限

收回权限就是取消已经赋予用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统安全性

MySQL中使用REVOKE语句取消用户的某些权限。使用REVOKE收回权限之后,用户账户的记录将从dbhosttables_privcolumns_priv表中删除,但是用户账户记录仍然在user表中保存(删除user表中的账户记录使用DROP USER语句,在将用户账户从user表删除之前,应该收回相应用户的所有权限。)

收回权限的命令(收回权限后需要用户重新登录才能生效

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

举例:
收回全库全表的所有权限:REVOKE ALL PRIVILEGES ON *.* FROM joe@'%';
收回mysql库下的所有表的插删改查权限:REVOKE SELECT,INSERT,UPDATE,DELETE ON mysql.* FROM joe@localhost;

原文地址:https://blog.csdn.net/qq_43079350/article/details/130654183

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_36744.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注