6、【MySQL】用户管理

    我们知道我们的最高权限管理者是root用户,它拥有着最高的权限,包括select、update、delete、grant等操作。一般在公司里DBA工程师会创建一个用户和密码,让你去连接数据库的操作,并给当前的用户设置某个操作的权限(或者所有权限)。

1、对新用户的增删改
# 创建用户  
# 指定IP为192.168.1.2的robot用户登陆
create user 'robot'@'192.168.1.2' identified by '1234'; 

# 指定ip为192.168.开头的robot用户登陆
create user 'robot'@'192.168.%.%' identified by '123';    

# 指定任何ip的robot用户登陆
create user 'robot'@'%' identified by '123';    

# 删除用户
drop user '用户名'@'可访问途径';

# 修改用户名
rename user '用户名'@'可访问路径' to '新用户名'@'可访问路径';

# 修改密码
set password for '用户名'@'可访问路径'=Password('新密码');

# 取消全局密码复杂度策略
set global validate_password_policy=0;
2、对当前的用户授权
# 查看权限
show grants for '用户名'@'IP地址';

# 刷新授权表
flush privileges;

# 授权
# 授权robot用户从192.168.1.2主机复制数据(用于主从复制)
grant replication slave on *.* to 'robot'@'192.168.1.2'

# 授权robot用户仅对db下 的tb文件有查询/插入/更新的操作
grant select, insert, update on db.tb to 'robot'@'%';

# 授权所有的权限(不包括grant命令,此命令只有root用户拥有)
grant all privileges on db.tb to 'robot'@'%';

# 此时robot用户可对db库下的所有文件执行任何操作
grant all privileges on db.* to 'robot'@'%';    

# 此时robot用户可对所有数据库及文件执行任何操作
grant all privileges on *.* to 'robot'@'%';   
 
# 取消授权
# 取消robot用户对db下的tb文件的所有权限
revoke all on db.tb from 'robot'@'%'; 

# 取消来自远程服务器的robot用户对数据库db下所有表的所有权限
revoke all on db.* from 'robot'@'%'; 

# 取消来自远程服务器的robot用户对所有数据库及表的权限  
revoke all privileges on *.* from 'robot'@'%';    
3、备份数据库
# 备份 数据表结构 + 数据
mysqldump -u root db > db.sql -p

# 备份:数据表结构
mysqldump -u root -d db > db.sql -p

# 备份:所有库
mysqldump -u root  -p

# 导入
create database new_db;
mysqldump -u root -d new_db < db.sql -p

你可能感兴趣的:(6、【MySQL】用户管理)