账户管理

  • 在生产环境下操作数据库时,绝对不可以使用root账户连接,而是创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作,主要的操作就是数据的crud
  • MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种
    • 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表
    • 数据库级别账号:对特定数据库执行增删改查的所有操作
    • 数据表级别账号:对特定表执行增删改查等所有操作
    • 字段级别的权限:对某些表的特定字段进行操作
    • 存储程序级别的账号:对存储程序进行增删改查的操作
  • 账户的操作主要包括创建账户、删除账户、修改密码、授权权限等
注意:
  1. 进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限
  2. 通常都使用数据库级操作权限

授予权限

需要使用实例级账户登录后操作,以root为例
主要操作包括:
  • 查看所有用户
  • 修改密码
  • 删除用户

1. 查看所有用户

  • 所有用户及权限信息存储在mysql数据库的user表中
  • 查看user表的结构
desc user;
  • 主要字段说明:
    • Host表示允许访问的主机
    • User表示用户名
    • authentication_string表示密码,为加密后的值
查看所有用户
select host,user,authentication_string from user;
结果
mysql> select host,user,authentication_string from user;
+-----------+------------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+-------------------------------------------+
| localhost | root | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | debian-sys-maint | *EFED9C764966EDB33BB7318E1CBD122C0DFE4827 |
+-----------+------------------+-------------------------------------------+
3 rows in set (0.00 sec)

2. 创建账户、授权

  • 需要使用实例级账户登录后操作,以root为例
  • 常用权限主要包括:create、alter、drop、insert、update、delete、select
  • 如果分配所有权限,可以使用all privileges

2.1 创建账户&授权

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

2.2 示例1

创建一个laowang的账号,密码为123456,只能通过本地访问, 并且只能对jing_dong数据库中的所有表进行读操作
step1:使用root登录
mysql -uroot -p
回车后写密码,然后回车
step2:创建账户并授予所有权限
grant select on jing_dong.* to 'laowang'@'localhost' identified by '123456';
说明
  • 可以操作python数据库的所有表,方式为:jing_dong.*
  • 访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
  • 访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
  • 查看用户有哪些权限
show grants for laowang@localhost;
step3:退出root的登录
quit
step4:使用laowang账户登录
mysql -ulaowang -p
回车后写密码,然后回车

2.3 示例2

创建一个laoli的账号,密码为12345678,可以任意电脑进行链接访问, 并且对jing_dong数据库中的所有表拥有所有权限
grant all privileges on jing_dong.* to "laoli"@"%" identified by "12345678"

账户操作

1. 修改权限

grant 权限名称 on 数据库 to 账户@主机 with grant option;
flush privileges 刷新权限

2. 修改密码

使用root登录,修改mysql数据库的user表
  • 使用password()函数进行密码加密
    update user set authentication_string=password('新密码') where user='用户名';
    例:
    update user set authentication_string=password('123') where user='laowang';
  • 注意修改完成后需要刷新权限
    刷新权限:flush privileges 

3. 远程登录(危险慎用)

如果向在一个Ubuntu中使用msyql命令远程连接另外一台mysql服务器的话,通过以下方式即可完成,但是此方法仅仅了解就好了,不要在实际生产环境中使用
修改 /etc/mysql/mysql.conf.d/mysqld.cnf 文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
然后重启msyql
service mysql restart
在另外一台Ubuntu中进行连接测试
如果依然连不上,可能原因:
1) 网络不通
通过 ping xxx.xxx.xx.xxx可以发现网络是否正常
2)查看数据库是否配置了bind_address参数
本地登录数据库查看my.cnf文件和数据库当前参数show variables like 'bind_address';
如果设置了bind_address=127.0.0.1 那么只能本地登录
3)查看数据库是否设置了skip_networking参数
如果设置了该参数,那么只能本地登录mysql数据库
4)端口指定是否正确

4. 删除账户

  • 语法1:使用root登录
drop user '用户名'@'主机';
例:
drop user 'laowang'@'%';
  • 语法2:使用root登录,删除mysql数据库的user表中数据
delete from user where user='用户名';
例:
delete from user where user='laowang';
-- 操作结束之后需要刷新权限flush privileges
  • 推荐使用语法1删除用户, 如果使用语法1删除失败,采用语法2方式

3. 忘记 root 账户密码怎么办 !!

  • 一般也轮不到我们来管理 root 账户,所以别瞎卖白粉的心了
  • 万一呢? 到时候再来查http://blog.csdn.net/lxpbs8851/article/details/10895085

转载于:https://www.cnblogs.com/denix-32/p/10066036.html

MySQL数据库的账户管理相关推荐

  1. 详解:MySQL数据库的权限管理和运维实操

    详解:MySQL数据库的权限管理 一.MYSQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行updat ...

  2. Mysql数据库root密码管理四法

    Mysql数据库root密码管理四法 方法一: 管理员可以在系统命令行中使用mysqladmin命令设置mysql用户的密码. 使用mysqladmin设置密码的命令语法如下: mysqladmin ...

  3. Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  4. mysql 数据库的基本管理

    ###### 1.数据库的介绍 ###### 1.什么是数据库 数据库就是个高级的表格软件 2.常见数据库 Mysql Oracle    mongodb  db2 sqlite sqlserver ...

  5. 4、mysql数据库的权限管理

    权限管理指的是对试图连接和操作数据库服务器的用户进行访问控制 关于权限管理的一些sql实例如下: -- 首先通过cmd窗口连接mysql服务器 mysql -u root -p *******-- m ...

  6. mysql linux附加数据库文件夹,Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  7. MySQL 数据库图形化管理界面应用种草之 Navicat Premium 如何使用

    文章目录 前言 一.工具/原料 二.安装和建立连接 2.1.连接本地数据库 2.2.连接远程数据库 三.Navicat Premium 的"增删改查"功能操作 3.1.数据库操作( ...

  8. MySQL数据库的基本管理操作

    目录 引言: 一.数据库日志 二.数据库管理 2.1进入数据库 2.2退出数据库 2.3查看数据库信息 2.4 查看数据库中包含的表信息 2.5查看数据表的结构(字段) 2.6 常用的数据类型 2.7 ...

  9. MySQL数据库web客户端管理工具软件

    TreeSoft数据库管理软件使用JAVA开发,采用稳定通用的springMVC+JDBC架构,实现基于web方式对 MySQL,Oracle,PostgreSQL, DB2 ,Cache ,达梦DM ...

最新文章

  1. 关于Puppet不得不说的故事
  2. css画横线箭头_用CSS绘制三角形箭头
  3. javase基础socket编程之局域网聊天,局域网文件共享
  4. 科沃斯机器人双十一全渠道成交额超7亿 两大爆款单品携手破亿
  5. NGINX原理 之 SLAB分配机制(转)
  6. 学java好还是web前端好_到底是学习Java好,还是Web前端好?
  7. macos 判断走无线网还是有线网_“第一次约会,就想发生关系”:怎样判断男人对你走心还是走肾?...
  8. c语言http协议头字符串,c语言http请求解析表单内容
  9. CProgressCtrl进度条控件实现进度滚动效果
  10. Nginx解决服务器宕机问题
  11. github安装及使用图文详解
  12. 【Linux】下载暂停后如何恢复
  13. 人生的意义到底是什么?
  14. 蓝牙远距离,一对多解决方案
  15. java 数据写入txt乱码_java写入文件是乱码
  16. 常用离子液体有哪些?粘度和密度是多少?(解答)
  17. jpeg二进制数据转base64后在前端显示
  18. 【图解】PCB快速制板,热转印机+腐蚀槽
  19. [Linux]tomcat 严重: Could not contact localhost:80. Tomcat may not be running
  20. shineblink ADXL345传感器测量三轴加速度/倾斜角

热门文章

  1. lay和lied_lie和lay的区别和用法是什么
  2. 你不知道的三种在for循环中使用setTimeout的方法
  3. Android 请求PHP接口, 返回json, 开头有问号, 解决方案
  4. u2020 华为_华为站点打LICENSE步骤
  5. 浅析在网站软文内容中是如何做好关键词优化的?
  6. 个人网站建设要避开这些“通病”
  7. python第五单元答案_中国大学MOOC第五单元测试答案_数据结构与算法Python版慕课答案在哪里可以看...
  8. halcon例程讲解_跟我学机器视觉-HALCON学习例程中文详解-开关引脚测量
  9. 为什么爬虫用python不用java_为什么常用Python,Java做爬虫,而不是C#C++等
  10. Kotlin学习 PART 1:kotlin定义和目的