用户操作
创建用户
create user ‘username’@’host’ identified by ‘password’
- host:本地:localhost,任意远程主机登陆:通配符%
用户授权
普通用户授权
GRANT privileges ON databasename.tablename TO 'username'@'host'
//如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*
例如:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
//在test库中的user 表授权pid用户插入和选择操作
GRANT ALL ON *.* TO 'pig'@'%';
//授权pid用户可以操作数据库所有的权限
注意:用以上命令授权的用户不能给其它用户授权
授权用户授权
如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
撤销权限
REVOKE SELECT,INSERT ON Database_name.table_name FROM 'username'@'hostname'
//撤销权限时,允许语句中含有用户未拥有的权限。
修改用户名
RENAME USER 'username'@'hostname' TO 'target_username'@'target_hostname'
修改密码
SET PASSWORD FOR 'username'@'hostname' =PASSWORD('new_password')
如果是修改当前登录的用户密码
SET PASSWORD = PASSWORD("newpassword");
删除用户
DROP USER 'username'@'hostname'
例如:
DROP USER 'username'@'host';
创建并授权
grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
通过GRANT命令创建用户,当数据库存在用户的时候GRANT会对用户进行授权,但当数据库不存在该用户的时候,就会创建相应的用户并进行授权。
操作代表权限
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限
例如:
grant select,insert,update,delete,create,drop on test.hr to john@192.168.10.1 identified by '123';
// 给主机为192.168.10.1的用户john分配可对数据库test的hr表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
// grant all privileges on :分配所有权限
// on test.*:授权对象为:数据库test所有表
// on *.*:授权对象为:所有数据库的所有表
// to john@localhost:john只能在本地访问数据库
直接向mysql.user表插入记录
数据库的用户信息都是保存在mysql.user这张表的,所以直接对该表进行插入语句,即可完成用户的创建,并刷新系统权限表。
insert into user (host,user,password) values ('%','john',password('123'));
flush privileges;
退出Mysql
exit (回车)