MySQL学习之用户权限管理

用户权限管理

用户权限管理:在不同的项目中给不同的角色(开发者)不同的操作权限,为了保证数据库数据的安全。

简单点说:有的用户可以访问并修改这个数据,而有些用户只能去查看数据,而不能修改数据。就如同博客园中每个用户的博客一样。对于博客的主人而言,

可以随意的删除自己的博客,而别人只能查看,如果每个人的权限都是一样的,别人可以随意的修改,这就会出现很多的问题,所以给不同用户不同的权限是很有必要的,可以保证每个用户的数据安全。

通常:一个用户的密码不会长期不变。所以需要经常性的变更数据库用户密码来确保用户本身安全。

用户管理

MySQL需要客户端进行连接认证才能进行服务器操作,需要用户信息,MySQL中所有的用户信息都是保存在MySQL数据库下的user表中的。基本语法:desc mysql.user; 或者是select * from mysql.user\G;

默认安装MySQL的时候,如果不选择创建匿名用户,那么意味着所有的用户只用一个,root超级用户。

在MySQL中,MySQL对用户的用户管理中,是通过对应的Host和User共同组成的主键来区分用户的。

User:代表用户的用户名。

Host:代表本质是允许访问的客户端(ip地址或者是主机地址)。如果host使用*代表所有的用户(客户端)都可以访问。

创建用户

注意:这里要创建用户,建议在root用户(超级用户下)创建,因为有些用户是不具有创建用户的权限的,

除非已经对这个用户受益了创建用户的权限。

理论上讲课采用两种方式创建用户。

1.直接使用root用户在mysql.user表中插入记录(不推荐)

2.专门创建用户的SQL指令

基本语法:create user  用户名 identified by 明文密码;

用户:用户名@主机地址。   也可以是只有用户名,表示的是可以任意一个客户端都可以访问这个用户。

查看mysql.user表中是否存在新增的用户

简化版创建用户(谁都可以访问,不需要密码)

总结一下:可以这么理解,如果没有给用户定义一个主机地址,那么任意的一台电脑的客户端都可以访问

这个用户。如果定义了主机地址,只有对应的主机可以访问这个用户。

删除用户

注意:MySQL中user是带着host本身的(具有唯一性)

基本语法:drop user 用户名@host;    

修改用户密码

MySQL中提供了多种修改的方式,基本上都必须使用对应提供的一个系统函数:password()

(MySQL5.7版本后,就不再使用了。);需要靠该函数对密码进行加密处理。

1.使用专门修改密码的指令---------不再使用。

基本语法:set password for 用户=password(”新的明文密码");

2.使用更新语句update来修改表-----不再使用,正确方法在第三个。

基本语法:update mysql.user set password = password(”新的明文密码") where user=‘用户名’ and host='

主机地址’;

运行会报错

ERROR 1064 (42000): You have an error inyour SQL syntax; check the manual that

corresponds to your MySQL server versionfor the right syntax to use near 'passw

ord('123456')' at line 1

原因是MySQL5.7.6版本以后,password属性已经取消(使用SELECT  Password

(‘123’) 实验知会报错)。

并且修改用户密码的语句已经改变

3.alter user 用户名 identified by'123456';

把用户当成(表,数据库)之类的进行修改。

猜你喜欢

转载自www.cnblogs.com/lixiaochi/p/10585424.html