【2019-01-05】数据库创建用户并授权

1, 创建 用户

CREATE USER '用户名'@'可以登陆此账户的ip地址' IDENTIFIED BY '密码';

这里我创建了一个用户名为suny,登陆地址为本机地址,密码是5201314的账户

ip地址那里指定该用户在哪个主机上可以登陆,本地用户可直接用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%,当然你也可以填写一个ip地址,随你的情况而定。

2.账户权限操作:

GRANT 指定该用户拥有的操作权限 ON 数据库名字.数据表名 TO '用户名'@'允许登陆的ip地址' ;

这里给用户名为suny的用户赋予了查询(select)的权限,它只允许查询在test数据库下score表的数据。操作权限常用的分为**SELECT**(查询数据) , **INSERT**(插入数据) , **UPDATE**(更新数据) ,**DELETE**(删除),**ALL**(赋予所有操作权限)

在这里如果你想让这个用户可以操作所有的表的话,你应该给它*来操作所有表。把 数据库名字.表名 换成 *.* 就可以让这个用户可以在设置的权限内操作所有数据库,例如你给一个用户select(查询)的权限的话,这个用户就能查询所有数据库里面的数据,但是请注意设置了select权限,所以只是能查询所有数据库的数据,而不能做增删改之类的操作

授权其他账户de权限

GRANT 指定该用户拥有的操作权限 ON 数据库名字.数据表名 TO '用户名'@'允许登陆的ip地址' WITH GRANT OPTION

后面添加了 WITH GRANT OPTION 这个权限,意思可以理解为授予用户可以设置其他用户权限的权限。

3.更改用户的密码

•自己修改自己的密码

你需要登陆你自己的账户再执行这条命令

SET PASSWORD = PASSWORD("新的密码");

•修改别的账户的密码

SET PASSWORD FOR '想修改密码的用户名'@'登陆的ip地址' = PASSWORD('设置新的密码');

4.撤销用户的操作权限

REVOKE 要撤销的操作权限 ON 数据库名.数据库表名 FROM '用户名'@'登陆的ip地址';

这里操作权限跟赋予的操作权限是一样的,操作权限常用的分为**SELECT**(查询数据) , **INSERT**(插入数据) , **UPDATE**(更新数据) ,**DELETE**(删除)等等,当我们执行撤销命令时可能会碰到以下的情况:你赋予权限的时候是这样的

•第一种情况:

•GRANT SELECT ON test.user TO 'suny'@'%',执行往后suny用户拥有select(查询)test下的user表的权限,然后想要撤销它权限的话,执行REVOKE SELECT ON *.* FROM 'suny'@'%';并不能撤销它的权限。

•第二种情况:

•REVOKE SELECT ON *.* FROM 'suny'@'%';执行往后suny用户拥有select(查询)test下的user表的权限,然后想要撤销它权限的话,执行GRANT SELECT ON test.user TO 'suny'@'%', 也不能撤销它的权限。

5.删除用户

看某用户行为不满意的时候,要删了它怎么办?

DROP USER '用户名'@'登陆ip地址';

你可能感兴趣的:(【2019-01-05】数据库创建用户并授权)