MySQL是一个多用户的数据库,最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作。如果有其他用户想使用MySQL,那么一般情况在公司之后DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。那么这时就需要我们来简单了解一下:
在Mysql中,一切的数据存放在表中,而用户表存放在mysql库中的user表,我们使用mysql.user 来表示mysql库中的user表,如果你想创建一个新的用户,则需要以下操作:
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地址>';
修改用户密码语法有两种: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 privileges on *.* 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'@'%';