MySQL | 用户管理

目前为止,我们一直使用的是root权限写的SQL语句。但如果我们只能用root,这样存在安全隐患。而MySQL是给我们提供了用户管理的,可以创建用户,提供权限,收回权限。

1. 用户

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

use mysql;
select host, user, authentication_string from user;

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

user:用户名

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

*_priv:用户拥有的权限

2. 创建用户

其实创建用户就是在user表进行增删查改。

create user '用户名'@'登陆主机/ip' identified by '密码';
create user 'sxk'@'localhost' identified by '********';
select host, user, authentication_string from user;

这就是新增用户,现在就可以使用新用户进行登录了。

--备注:可能实际在设置密码的时候,因为mysql本身的认证等级比较高,一些简单的密码无法设置,会爆出如下报错:
-- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 解决方案:https://blog.csdn.net/zhanaolu4821/article/details/93622812
--查看密码设置相关要求:SHOW VARIABLES LIKE 'validate_password%';

3. 删除用户

drop user '用户名'@'主机名'
drop user 'sxk'@'localhost';
select host, user, authentication_string from user;

4. 修改用户密码

创建一个用户
create user 'sxk'@'localhost' identified by '123456789';
set password=password('new password');--自己改自己的密码
set password for 'sxk'@'localhost'=password('*****); -- root更改其他用户的密码

5. 数据库的权限

MySQL数据库提供的权限列表

a. 给用户授权

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

grant 权限 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']
多个权限用逗号分开
grant select on ...
grant select, delete, create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限

*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

--给用户sxk赋予test数据库下所有文件的select权限
grant select on test.* to 'sxk'@'localhost';
如果说此时要删除test数据库下的某一个表,是删除不了的,因为sxk用户只有select权限。

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

b. 挥手权限

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
回收sxk对test数据库的所有权限。
revoke all on test.* from 'sxk'@'localhost';

相关推荐

最近更新

  1. Selenium 切换窗口

    2024-03-24 07:00:04       0 阅读
  2. PCA和PCoA分析的python代码

    2024-03-24 07:00:04       0 阅读
  3. 24/07/09数据结构(3.1206)数组OJ单链表实现

    2024-03-24 07:00:04       1 阅读
  4. [Flutter] Android Studio pub get 不起作用

    2024-03-24 07:00:04       1 阅读

热门阅读

  1. Node.js 常用命令

    2024-03-24 07:00:04       16 阅读
  2. 算法提高篇基础算法第一章 - 贪心算法

    2024-03-24 07:00:04       13 阅读
  3. 计算机二级真题讲解每日一题:《format格式化》

    2024-03-24 07:00:04       17 阅读
  4. Android单片机硬件通信《GPIO通信》

    2024-03-24 07:00:04       13 阅读
  5. 设计模式(行为型设计模式——模板方法模式)

    2024-03-24 07:00:04       18 阅读
  6. Unity与鼠标相关的事件(自己记忆用)

    2024-03-24 07:00:04       16 阅读
  7. 179. 最大数

    2024-03-24 07:00:04       15 阅读
  8. css如何通过媒体查询功能实现界面的自适应

    2024-03-24 07:00:04       17 阅读
  9. 合并排序算法的时间复杂度是多少?

    2024-03-24 07:00:04       17 阅读
  10. 排序算法之冒泡排序

    2024-03-24 07:00:04       22 阅读