第一步:用户添加:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
说明:
- hostname:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
常用写法:
# 创建用户 root ,设置密码123456 并且设置用户只能在localhost (当前本机登入),--不推荐
CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';
# 创建用户 root ,设置密码123456 并且设置用户只能在指定IP192.168.1.110登入,--不推荐
CREATE USER 'root'@'192.168.1.110' IDENDIFIED BY '123456';
# 创建用户 root ,设置密码123456 并且设置用户在任意IP都可以登入,--推荐
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
# 创建用户 root ,设置密码密码为空并且设置用户在任意IP都可以登入,--不推荐
CREATE USER 'root'@'%' IDENTIFIED BY '';
# 创建用户 root ,设置用户在任意IP都可以登入,--不推荐
CREATE USER 'root'@'%';
第二步:授权
GRANT privileges ON databasename.tablename TO 'username'@'hostname'
说明:
- privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
# 授权root 用户访问db库user表的select 和insert 权限,并且用户在任意IP可以使用 --不推荐
GRANT SELECT, INSERT ON Db.user TO 'root'@'%';
# 授权root 用户访问当前数据库系统任意库任意表无任何权限设置,并且用户在任意IP可以使用 --不推荐
GRANT ALL ON *.* TO 'root'@'%';
# 授权root 用户访问Db数据库系统任意表无任何权限设置,并且用户在任意IP可以使用 --推荐
GRANT ALL ON Db.* TO 'jack'@'%';
注意:
执行完授权,需要执行flush privileges 指令,才能使新增权限生效。
flush privileges; //权限刷新