MySQL是一个多用户的数据库,最高权限管理者是root用户,它拥有着最高的权限操作 。包括select、update、delete、update、grant等操作 。如果有其他用户想使用MySQL,那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限) 。那么这时就需要我们来简单了解一下:
- 如何创建用户和密码
- 给当前的用户授权
- 移除当前用户的权限
1.进入到mysql数据库
mysql> use mysql;Database changed
2.对用户列表的查增改删查询用户语法:select host,user from mysql.user;
mysql> select host,user from mysql.user;
增加用户语法: create user "<username>"@"<host>" identified by "<password>";
myqsl>create user "pingtai"@"%" identified by "1qe3!QE#";
修改用户IP地址语法: rename user '<用户名>'@'<IP地址>' to '<新用户名>'@'<IP地址>';【Mysql创建用户和权限管理】
修改用户密码语法有两种:1. ALTER USER '用户名'@'IP' IDENTIFIED BY '密码';
set password for '用户名'@'IP地址'=Password('新密码'); 两个意思一样
mysql>rename user 'root'@'%' to 'root'@'19.130.%';
删除用户语法: drop user '<用户名>@'<IP地址>'
mysql> drop user 'test'@'%';
3.对用户权限的查增改删mysql权限有很多,常见的增删查改是insert delete select update
查询用户权限语法:show grant for '<用户名>'@'<IP地址>'
mysql> show grants for 'root'@'localhost'
授权语法: grant <privileges> on <databasename>.<tablename> to '<username>'@'<host>'
#设置远程管理员权限,默认不带grant权限grant all privilegeson *.*to "alex"@'%';#授权'alex'@'%'用户仅对db1.t1文件有查询、插入和更新的操作grant select,insert,update on db1.t1 to "alex"@'%';?#授权'sdata'@'%'用户对szyd数据库的全部表只有读取的权限grant select on szyd.* to 'sdata'@'%';
改权限也就是增删权限,撤销权限的语法是: revoke <privileges> on <数据库>.<表> from '<用户名>'@'IP';
# 取消来自远程服务器的alex用户对数据库db1的所有表的所有权限revoke all on db1.* from 'alex'@"%"; ?#取消'alex'@'%'对szyd数据库全部表的delete权限revoke delete on szyd.* from 'alex'@'%';?#撤销'alex'@'%'用户对所有库所有表的全部权限revoke all on *.* form 'alex'@'%';
推荐阅读
- 我对 MySQL 锁、事务、MVCC 的一些认识
- MySQL 中,21 个写 SQL 的好习惯
- 如果mysql磁盘满了,会发生什么?还真被我遇到了
- CentOS7安装mysql8
- Kali和Windows用户密码管理的异同
- 分享一份大佬的MySQL数据库设计规范,值得收藏
- 几年了,作为一个码农终于把MySQL日记看懂了
- 使用sqoop在MySQL、hadoop、hive间同步数据
- MYSQL使用初步流程介绍
- 解决 MySQL 8.0 一直拒绝 root 登录问题