新建用户

create user 'username'@'%' identified by 'password';

• user_name:要创建用户的名字。
• host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
• password:新创建用户的登陆数据库密码,如果没密码可以不写
补充说明:如果碰到新建的用户使用终端无法登陆的问题:
解决方案:使用root用户登陆进去,执行
delete from mysql.user where User='username';

Flush Privileges;

分配权限

grant privileges on databasename.tablename to 'username'@'host'
• privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
• databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 " . ",* 是一个通配符,表示全部。
• ‘username‘@’host’:表示授权给哪个用户,username 的引号可以不加哦,但 host 必须加。
例:

  1. grant all privileges on *.* to 'username'@'%'; --所有权限
  2. grant selete, insert on test.user TO 'pig'@'%'; --test库下user表读和插入的权限

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
刷新权限:

FLUSH PRIVILEGES;

设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

撤销用户权限

命令:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分.

例子: REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON . FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON . TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

删除用户

命令:
DROP USER 'username'@'host';

posted on 2021-09-26 15:56  小白丶瑶  阅读(148)  评论(0编辑  收藏  举报