转载地址:https://blog.csdn.net/luguodehua/article/details/80327462
1.使用root用户登录mysql数据库
输入如下指令:
SELECT * FROM mysql.user;
得到所有用户及对应权限。
2.创建用户
CREATE USER 'user_name'@'host' IDENTIFIED BY 'password';
user_name:为创建用户的名字
host:表示要这个新创建的用户允许从哪台机登陆。
如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’
password:新创建用户的登陆数据库密码,如果没密码可以不写。
例如:
1)
CREATE USER 'aaa'@'localhost' IDENTIFIED BY '123456';
//表示创建的新用户,名为aaa,这个新用户密码为123456,只允许本机登陆;
2)
CREATE USER 'bbb'@'%' IDENTIFIED BY '123456';
//表示新创建的用户,名为bbb,这个用户密码为123456,可以从其他电脑远程登陆mysql所在服务器;
3)
CREATE USER 'ccc'@'%';
//表示新创建的用户ccc,没有密码,可以从其他电脑远程登陆mysql服务器
我们新建一个用户看一下,
CREATE USER 'aaa'@'localhost' IDENTIFIED BY '123456';SELECT * FROM mysql.user;
我们可以看到新增的用户aaa.
3.对用户进行授权
命令:
GRANT PRIVILEGES ON databasename.tablename TO 'username'@'host';
privileges:表示要授予什么权限,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL
databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。
'username'@'host':表示授权给哪个用户。
例如:
1)
GRANT select,insert ON emp.emp TO 'aaa'@'localhost';
//表示给用户aaa授权,让aaa能给emp库中的emp表 实行 insert 和 select。
2)
GRANT ALL ON *.* TO 'aaa'@'localhost';
//表示给用户aaa授权,让aaa能给所有库所有表实行所有的权力。
我们给新创建的aaa用户赋予所有的权限
GRANT ALL ON *.* TO 'aaa'@'localhost';
可以看到aaa用户的权限已做了改变,有N-->Y。
4.删除用户
指令:
DROP USER 'aaa'@'localhost';
5.设置与更改用户密码
指令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是设置当前用户的密码:
SET PASSWORD = PASSWORD('newpassword');
如:
SET PASSWORD = PASSWORD('123456');
6.撤销用户权限
指令:
REVOKE PRIVILEGES ON database.tablename FROM 'username'@'host';
例如:撤销用户aaa的select权限
REVOKE SELECT ON *.* FROM 'aaa'@'localhost';