新建用户
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 必须加。
例:
grant all privileges on *.* to 'username'@'%';
--所有权限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';