服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL用户权限设置保护数据库安全

MySQL用户权限设置保护数据库安全

2023-05-09 14:08假装我不帅 Mysql

MySQL用户权限设置是保护数据库安全的重要措施之一。通过为用户设置不同的权限,可以控制用户对数据库的访问能力,包括读取、修改、删除、创建等操作。合理设置用户权限可以避免误操作、非法访问等安全问题

更改mysql密码

?
1
2
3
4
5
6
7
-- 查询用户权限
show grants for 'root'@'%';
update mysql.user set authentication_string=password('密码') where user='root' and Host = 'localhost';
flush privileges;
-- 或者下面方式
alter user 'test1'@'localhost' identified by '新密码';
flush privileges;

创建用户

?
1
2
3
4
-- 创建本地的
-- create user 'test1'@'localhost' identified by '密码';
-- 创建可以远程访问的
create user 'wjl'@'%' identified by 'wujialiang';

给用户所有权限

?
1
2
-- grant all privileges on *.* to 'wjl'@'localhost' with grant option;
grant all privileges on *.* to 'wjl'@'%' with grant option;

第一个表示通配数据库,可指定新建用户只可操作的数据库

如:grant all privileges on 数据库. to ‘test1’@‘localhost’;

第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表

如:grant all privileges on 数据库.指定表名 to ‘test1’@‘localhost’;

all privileges 可换成select,update,insert,delete,drop,create等操作 如:grant select,insert,update,delete on . to ‘test1’@‘localhost’;

移除用户所有权限

?
1
2
-- revoke all privileges on *.* from 'wjl'@'localhost';
revoke all privileges on *.* from 'wjl'@'%';

添加部分权限

?
1
2
-- GRANT Select,Update,insert,delete ON *.* TO '用户名'@"%";
GRANT select,update,insert,delete ON *.* TO 'wjl'@"%";

移除部分权限

?
1
2
-- REVOKE select,insert ON 数据库.* FROM wjl@'localhost'
REVOKE select,insert ON 数据库.* FROM wjl@'%'

删除用户

?
1
drop user 'wjl'@'localhost';

权限解释

参数 解释
​All/All Privileges 代表全局或者全数据库对象级别的所有权限​​
Alter 代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表, create和insert新表的权限
Alter routine 代表允许修改或者删除存储过程、函数的权限
Create 代表允许创建新的数据库和表的权限
Create routine 代表允许创建存储过程、函数的权限
Create tablespace 代表允许创建、修改、删除表空间和日志组的权限
Create temporary tables 代表允许创建临时表的权限
Create user 代表允许创建、修改、删除、重命名user的权限
Create view 代表允许创建视图的权限
Delete 代表允许删除行数据的权限
Drop 代表允许删除数据库、表、视图的权限,包括truncate table命令
Event 代表允许查询,创建,修改,删除MySQL事件
Execute 代表允许执行存储过程和函数的权限
File 代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select … into outfile,load file()函数
Grant option 权限代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限
Index 代表是否允许创建和删除索引
Insert 代表是否允许在表里插入数据,同时在执行analyze table,optimize table,repair table语句的时候也需要insert权限
Lock 代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写
Process 代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令
Reference 是在5.7.6版本之后引入,代表是否允许创建外键
Reload 代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表
Replication client 代表允许执行show master status,show slave status,show binary logs命令
Replication slave 代表允许slave主机通过此用户连接master以便建立主从复制关系
Select 代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1, Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的
Show databases 代表通过执行show databases命令查看所有的数据库名
Show view 代表通过执行show create view命令查看视图创建的语句
Shutdown 代表允许关闭数据库实例,执行语句包括mysql admin shutdown
Super 代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令
Trigger 代表允许创建,删除,执行,显示触发器的权限
Update 代表允许修改表中的数据的权限
Usage 是创建一个用户之后的默认权限,其本身代表连接登录权限

案例

普通用户权限

?
1
2
3
grant all privileges on *.* to 'wjl'@'%' with grant option;
REVOKE Shutdown,Process,Grant option,Drop ON *.* FROM wjl@'%';
flush privileges;

到此这篇关于MySQL用户权限设置保护数据库安全的文章就介绍到这了,更多相关MySQL用户权限设置内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_36437991/article/details/130523115

延伸 · 阅读

精彩推荐
  • Mysqlphp连接不上mysql但mysql命令行操作正常的解决方法

    php连接不上mysql但mysql命令行操作正常的解决方法

    这篇文章主要介绍了php连接不上mysql但mysql命令行操作正常的解决方法,需要的朋友可以参考下 ...

    MYSQL教程网3282020-03-23
  • MysqlMySQL内部临时表的具体使用

    MySQL内部临时表的具体使用

    MySQL临时表在很多场景中都会用到,比如用户自己创建的临时表用于保存临时数据,以及MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等...

    Yungyu6482021-11-25
  • MysqlMySQL DDL执行方式Online DDL详解

    MySQL DDL执行方式Online DDL详解

    这篇文章主要介绍了MySQL DDL执行方式Online DDL详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下...

    刘邓忠10222022-11-16
  • Mysqlmysql 控制台操作

    mysql 控制台操作

    其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。 ...

    mysql教程网2812019-10-29
  • MysqlMysql存储过程中游标的用法实例

    Mysql存储过程中游标的用法实例

    这篇文章主要介绍了Mysql存储过程中游标的用法,以商户关联数据的插入及更新为例分析了MySQL存储过程中游标的使用技巧,需要的朋友可以参考下 ...

    defias4202020-05-14
  • Mysql详细解读MySQL中的权限

    详细解读MySQL中的权限

    这篇文章主要介绍了MySQL中的权限,包括各个权限所能操作的事务以及操作权限的一些常用命令语句,需要的朋友可以参考下 ...

    MYSQL教程网9322020-05-05
  • Mysql一步步教你配置MySQL远程访问

    一步步教你配置MySQL远程访问

    这篇文章主要给大家介绍了配置MySQL远程访问的相关资料,文中介绍的非常详细,相信对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面...

    Myths5132020-07-26
  • Mysqlmysql5.1.26安装配置方法详解

    mysql5.1.26安装配置方法详解

    这篇文章主要为大家详细介绍了mysql安装配置方法,图文详解MySQL5.1.26安装步骤,感兴趣的小伙伴们可以参考一下 ...

    然后呢_Z5322020-06-15