MySQL用户管理(用户,权限)

本文介绍了MySQL数据库的用户管理,强调了仅使用root用户的安全隐患,并详细阐述了如何查看用户、创建用户、删除用户、修改用户密码以及权限的授予和回收。通过实例展示了如何为不同用户分配特定数据库的权限,确保数据安全。

      在数据库中,如果我们只能使用root用户,这样是存在安全隐患的。

     如果有人要访问你的数据库,而只有root用户可以访问,那么你就得把root的账户密码给他,一旦别人登录上你的数据库之后,将可以随意操纵你的数据库,岂不是很危险!!!

     这时,就需要使用mysql的用户管理,张三只能操纵mytest这个库,李四只能操纵msg数据库。有效规避了数据泄露的隐患^-^

      

一、用户

1.1 查看MySQL数据库中所有用户

  MySQL中的用户,都存储在系统数据库mysql的user表中  

字段解释:

host:表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

user:用户名

authentication_string:用户密码通过password函数加密后的

1.2 查询具体用户权限

show grant for '用户名'@'host';

  

  (上面的意思是:给这个root用户操作root数据库的所有权限;)

  

1.3 创建用户

create user '用户名'@'登陆主机/ip' identified by '密码';

  

  查询当前用户,可以看到增加了一个zhangsan用户:

  

1.4 删除用户

drop user '用户名'@'主机名';

效果如下图:

  

错误示例直接给用户名是不能够删除的,此时默认的登录主机是任意地方,即%,表示任意地方都可以登录的用户,显然是不能正确删除了的。 

1.5 修改用户密码

(1)自己改自己密码

set password =password('新的密码');

(2)root用户修改指定用户的密码

set password for '用户名'@'主机名' =password('新密码');

for example:

set  password for 'zhangsan'@'localhost' =password('123456');

二、数据库权限

MySQL数据库提供的权限列表:

_priv:用户拥有的权限;

2.1 给用户授权

刚创建的用户没有任何权限。需要给用户授权。
语法:

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码'];
--赋予所写权限的权限
grant all [privileges] on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']; 
--赋予所有权限

 identified by :可选,如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

授权步骤:

(1)查询自己的数据库下面有哪些数据库(zhangsan用户看不到user1数据库)

  

(2)赋予新建用户‘zhangsan’查询user1.student表的权限

  

(3)zhangsan用户可以看到user1数据库

  

(4)可查询user1数据库下的student表

  

(5)进行删除操作,可发现,不能删除,因为没有删除权限

  
 

注意:如果发现赋权限后,没有生效,执行如下指令:

flush privileges;

2.2 回收权限

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

   

 

————————————————————————————————————————————————————————  补充:

  *.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等);

      库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值