数据库中用户-删库有风险

SQL中的用户管理

之前在登陆数据时,一直使用的都是 root 用户, root用户是数据库系统中的超级管理员,可以对数据库做任何操作。

在生产环境中,开发人员一般只是对数据做读取操作。root 用户对于普通人来说,权限太大了,如果不小心做了一些不可逆的操作。那么后果是非常严重的。

所以 root 用户不会让开发人员使用,一般会由DBA或运维人员统一管理。给开发人员针对项目的数据库建立专门的用户来操作。

查看所有用户

MySQL中所有的用户及权限信息都存储在MySQL数据库的user表中。

通过 desc user; 可以查看user表的结构

主要字段:

- Host 允许访问的主机地址   localhost 为本机, % 为任何主机
- User 用户名
- authentication_string     密码,保存的是加密后的值

查看所有的用户

select host ,user,authentication_string from user;

创建帐户、授权

注:用户管理操作的权限 都是管理员来操作的,只能使用 root 用户操作。

  • 常用权限: create、alter、drop、insert、update、delete、select
  • 全部权限: all privileges

语法:grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码';

  • 创建账户并授予查询权限

    -- 加入testuser用户,密码123123,只能对jddb中的表做查询操作
    grant select on jddb.* to 'testuser'@'localhost' identified by '123123';
    

查看权限

语法: show grants for 用户名@主机地址

```sql
show grants for testuser@localhost;
```
<img src='images/123.png'>

修改权限

语法:grant 权限名称 on 数据库 to 账户@主机 with grant option;

-- 将testuser权限改为对所有库有所有权限 
grant all privileges on *.* to 'testuser'@'localhost' with grant option;

flush privileges;

删除用户

语法:drop user 用户名@主机地址 drop user 'testuser'@'localhost';

用户管理小结:

用户管理是MySQL当中一块非常重要的内容,它涉及到了数据的安全问题。 但是对于开发人员来讲,这块内容在实际工作中涉及又不多,因为数据库的维护会有专门的运维人员或DBA来完成。 一般在操作数据时,不会使用root用户。

猜你喜欢

转载自blog.csdn.net/weixin_43115821/article/details/82845245