Mysql创建用户并授权
MySQL5.7 mysql.user表没有password字段改 authentication_string;
创建用户
命令
1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
PS
username
- 你将创建的用户名host
- 指定该用户在哪个主机上可以登陆,此处的”localhost”,是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将”localhost”改为”%”,表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;password
- 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
例子
1
2CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'test1'@'localhost' IDENTIFIED BY '';
授权
命令
1
2
3GRANT privileges ON db_name.tablename TO 'username'@'host'
GRANT ALL privileges on db_name.* to username@'%' with grant option; #授权(MySQL8.0版本)PS:
privileges
- 用户的操作权限,如SELECT , INSERT , UPDATE
等.如果要授予所的权限则使用ALL.;db_name
- 数据库名,tablename
-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用* 表示, 如*host
- 指定该用户在哪个主机上可以登陆,此处的”localhost”,是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将”localhost”改为”%”,表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
例子
1
GRANT SELECT, INSERT ON demo.* TO 'test'@'localhost';
刷新系统权限表
1 | flush privileges; |
查看用户的授权
1 | show grants for dog@localhost; |
- PS
GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干.
删除用户
1 | DROP USER 'username'@'host'; |