当前位置: 首页 > news >正文

MySQL --- 用户管理

一、用户信息

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

  • user表的结构如下

这里主要介绍以下几个字段

  • host 表示这个用户可以从哪个主机登陆,如果是 localhost ,表示只能从本机登陆
  • user: 用户名
  • authentication_string: 用户密码通过 password 函数加密后的
  • *_priv 用户拥有的权限

二、创建用户

由于mysql的用户管理也是放在表中的,所以我们可以直接对user表插入用户信息,但是这种做法不推荐。我们一般使用sql的语句创建,如下

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

说明:

  • 一般网页登录在服务器端存放的也不是我们的密码,都是被加密过的,防止数据库被盗,用户信息被泄露,所以我们在查看用户密码只能看到一串字符串。
  • host 设置为 hostlocal 表示只允许本地登录,和 127.0.0.1 一样
  • 如果 host 设置为 '%' 表示任意ip地址都能登录,但是一般不推荐
  • flush privileges 用来刷新权限设置
  • 数据库一般被放在内网,不允许外网ip直接访问,外网ip也无法得知内网的ip,这样保证了数据库安全

远程连接数据库的语句如下

mysql -h 远程数据库IP地址 -P 端口号 -u 用户名 -p

三、删除用户

我们可以直接对user表进行删除操作(不推荐),也可以通过sql语句,如下

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

四、修改用户密码

  • 自己改自己密码
set password=password( ' 新的密码 ' );

  • root用户指定用户的密码  
set password for ' 用户名 ' @ ' 主机名 ' =password( ' 新的密码 ' );

五、数据库的权限管理 

权限有 create,drop,alter,insert,update,delete,select,.... 常用的就这么多,其他的可以在 user 表中查看,user 的表结构字段中带priv后缀的都是权限

1、给用户授权

grant 权限列表 on . 对象名 to ' 用户名 ' @ ' 登陆位置 ' [identified by ' 密码 ' ];

使用如下

  • grant select on ... // 赋予查找权限
  • grant select,insert,delete on ... // 赋予查找,插入,删除权限
  • grant all on ... // 赋予所有权限
  • *.* 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  • .* :表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by可选,如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

2、回收权限

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言 | Leetcode C语言题解之第327题区间和的个数
  • vscode插件中的图标怎么设置
  • 理解Go语言中多种并发模式
  • 2024年6月 青少年机器人技术等级考试理论综合试卷(二级)
  • 文件共享服务NFS(服务名nfs,端口tcp/2049)
  • Codeforces 874 div3 A-G
  • pytorch setattr vs. add_module区别
  • 【日常记录-MySQL】MySQL设置root用户密码
  • 英语文化中的音乐分类及其发展历史(Classical、Jazz、Rock、Pop、Electronic、Country、RB、Hip-Hop)
  • 虚拟dom-Diff算法
  • 通过docker-compose 部署misskey 服务器
  • 开发输出防护栏以检测GPT-4o幻觉
  • 基于springboot3实现单点登录(二):认证服务端搭建
  • 【递归】什么是递归-C语言为例
  • Linux安全与高级应用(九)Linux远程访问与控制:安全与最佳实践
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • CAP 一致性协议及应用解析
  • const let
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Cumulo 的 ClojureScript 模块已经成型
  • ERLANG 网工修炼笔记 ---- UDP
  • HTTP中GET与POST的区别 99%的错误认识
  • iOS编译提示和导航提示
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • javascript 总结(常用工具类的封装)
  • Java比较器对数组,集合排序
  • Java面向对象及其三大特征
  • js ES6 求数组的交集,并集,还有差集
  • oschina
  • SpringBoot 实战 (三) | 配置文件详解
  • Wamp集成环境 添加PHP的新版本
  • 彻底搞懂浏览器Event-loop
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 盘点那些不知名却常用的 Git 操作
  • 前端面试总结(at, md)
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用SAX解析XML
  • 手写双向链表LinkedList的几个常用功能
  • -- 数据结构 顺序表 --Java
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 我建了一个叫Hello World的项目
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #Linux(make工具和makefile文件以及makefile语法)
  • (0)Nginx 功能特性
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (编译到47%失败)to be deleted