MySQL - 第13节 - MySQL用户管理

这篇具有很好参考价值的文章主要介绍了MySQL - 第13节 - MySQL用户管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.MySQL用户管理概念

2.用户

2.1.用户信息

2.2.创建用户

2.3.修改用户密码

2.4.删除用户

3.数据库的权限

3.1.MySQL中的权限

3.2.给用户授权

3.3.回收权限


1.MySQL用户管理概念

MySQL用户管理概念:

• 与Linux操作系统类似,MySQL中也有超级用户和普通用户之分。

• 如果一个用户只需要访问MySQL中的某一个数据库,甚至数据库中的某一个表,那么可以为其创建一个普通用户,并为该用户赋予对应的权限,而不让该用户看到数据库中的其他数据,防止该用户对其他数据进行误操作。


2.用户

2.1.用户信息

MySQL当中默认有一个名为mysql的数据库。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

查看该数据库中的表,可以看到其中有一个名为user的表。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

user表中存储的就是MySQL中用户相关的信息。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

部分字段说明:

• user: 表示该用户的用户名。
• host: 表示该用户可以从哪个主机登录,localhost表示只能从本机登录,%表示可以从任意地方登录。
• authentication_string: 表示该用户的密码经过password函数加密后的值。
• xxx_priv: 表示该用户是否拥有对应权限。
在查看用户信息时为了避免刷屏,可以只选择其中的部分字段进行显示。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

需要注意的是,MySQL中可以存在同名的用户,只要这些同名用户对应的登录主机不同即可,因为user表中的主键是复合主键,由表中的user列和host列共同承担。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

注:所有的用户管理工作,全部都是在这张user表中进行,所有用户管理工作对应的sql,本质其实都是对这个表进行增删查改。但是如果用户手动的对user表进行增删查改并不方便,因此MySQL提供了一些用户管理的sql。

2.2.创建用户

创建用户的SQL如下

CREATE USER '用户名'@'登录主机' IDENTIFIED BY '密码';

比如下面创建一个用户名为frank,并且可以从任意地方登录的用户。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

注:这里如果系统提示1290错误,即当前root用户不允许进行新建用户的操作,那么我们使用 flush privileges 命令刷新一下权限即可。

创建用户成功后,该用户的相关信息也就被写入到刚才的user表中了。MySQL内部存储密码不会以明文的方式存储,而是要通过password函数处理加密存储,如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

这时便可以用新创建的普通用户来连接MySQL服务器了。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

此外,由于我们创建的这个用户可以从任意地方登录,因此如果你在Windows下也安装了MySQL,那么就可以在Windows的cmd窗口进行远程登录。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

说明一下:

• 创建用户的SQL当中包含用户的密码,因此该SQL不会被历史记录下来,所以不能通过上下键进行追溯。
• MySQL本身的认证级别比较高,因此创建用户时设置的密码不能太简单,否则会出现报错,这时你可以选择将密码设置复杂一些,也可以对密码相关的设置进行调整。

注:

1.在Windows安装MySQL可参照博客MySQL 5.7 解压版安装教程 [Windows](完更)_windows安装mysql5.7_Litsev的博客-CSDN博客

2.在公司内部,禁止将数据库的端口开放在公网上,一旦暴露在公网上很容易出问题。如果在学习中一定要暴露在公网上,那么使用完MySQL后要将其关掉,并且在配置文件中将数据库的端口号进行更改。

通过show命令查看全局变量,可以看到密码设置相关的要求。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

2.3.修改用户密码

用户自己修改自己的密码:

用户可以自己通过调用password函数,将新密码加密后的值设置到自己password当中。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

注:用户可以直接使用update函数对user表中的authentication_string密码字段进行修改,如下图所示,但这样修改风险较大,建议使用mysql提供的接口。

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

超级用户修改任意用户的密码:

超级用户可以通过调用password函数,将新密码加密后的值设置到指定用户的password当中。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

2.4.删除用户

删除用户的SQL如下:

DROP USER '用户名'@'登录地址';

比如将刚才创建的用户删除后,该用户在user表中对应的记录也就不存在了。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

说明一下:

• 删除用户时如果不指明待用户的登录地址,则默认删除的是登录地址为%的用户。


3.数据库的权限

3.1.MySQL中的权限

MySQL数据库提供的权限如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

需要注意的是,新创建的用户没有任何权限,因此创建用户后需要给用户授权。 

3.2.给用户授权

给用户授权的SQL如下:

GRANT 权限列表 ON 库名.对象名 TO '用户名'@'登录地址' [IDENTIFIED BY '密码'];

说明一下:

• '用户名'@'登录地址':表示给哪一个用户授权。
• 库名.对象名:表示要授予用户哪个数据库下的哪个对象的权限。
• 权限列表:表示要授予用户何种权限,多个权限之间用逗号隔开。
• IDENTIFIED BY '密码' (可选):如果用户存在,则在授予权限的同时修改该用户的密码,如果用户不存在,则创建该用户。
比如下面使用root用户创建用户frank,并授予用户frank在root用户的test数据库下所有对象的select权限。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

授权后通过 show grants for '用户名'@'登陆地址' 命令,可以查看该用户现有的权限。如下: 

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

说明一下:

• 创建用户后该用户默认会有USAGE权限,该权限只能用于数据库登录,不能执行任何操作。

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

此时该用户查看数据库时,就能查看到test数据库了。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

说明一下:

• 创建用户后该用户默认只能看到information_schema数据库,该数据库中保存的是MySQL服务器所维护的所有其他数据库的信息。

进入test数据库后,也能查看其中的所有表。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维但该用户目前只能查看表中的信息,而不能对表中的数据进行修改,因为我们只授予了该用户select权限。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

下面将test数据库下的所有权限都授予该用户。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

这时该用户才可以对表中的数据进行其他操作。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

3.3.回收权限

回收权限的SQL如下:

REVOKE 权限列表 ON 库名.对象名 FROM '用户名'@'登录地址';

说明一下:

• 回收权限的语法与授权一样,只不过将to关键字改为了from,并且没有了 IDENTIFIED BY '密码' 字段。

比如下面将frank用户在test数据库下的所有权限回收。如下:

MySQL - 第13节 - MySQL用户管理,MySQL数据库,mysql,数据库,linux,服务器,运维

说明一下:

• 回收用户在某一数据库下的权限后,在该用户下一次进入该数据库时才会起作用。

• 如果回收权限时该用户正在使用对应数据库,那么回收权限后该用户仍然拥有对应的权限。文章来源地址https://www.toymoban.com/news/detail-517890.html

到了这里,关于MySQL - 第13节 - MySQL用户管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——SQL(4)-DCL(管理用户、权限控制)

    目录 管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 示例 权限控制 1.查询权限 2.授予权限 3.撤销权限 示例 DCL总结 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 注意: 主机名可以使用通配符‘%’。 这类S

    2024年02月12日
    浏览(35)
  • 【Mysql数据库从0到1】-入门基础篇--用户与权限管理

    Mysql 用户分为root用户和普通用户,其中root用户是数据库超级管理员,拥有所有权限(创建、删除、修改密码、授权等管理权限),普通用户只拥有被授予的权限。 Mysql数据库的安全性通过账户管理来保障。 1.1 🍃 Mysql服务器登录 🍀 简单使用 🍀 复杂使用 1.2 🍃 用户创建

    2024年02月07日
    浏览(52)
  • linux系统--------------mysql数据库管理

    目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息    1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构(字段) 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 2.1.1库

    2024年03月24日
    浏览(40)
  • linux高级管理——访问MYSQL数据库

    一、认识数据库系统:  MySQL数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问MySQL数据库需要使用专门的客户端软件。在Linux系统中,最简单、易用的MySQL客户端软件是其自带的mysql命令工具。 1.登录到MySQL服务器 经过安装后的初始化过程,MySQL 数据库的默

    2024年02月04日
    浏览(30)
  • Linux高级管理--安装MySQL数据库系统

            MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司 的

    2024年02月04日
    浏览(45)
  • MySQL数据库——MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行  GRANT  语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权

    2024年02月06日
    浏览(46)
  • Mysql数据库用户操作

    # Mysql数据库用户操作 ## 1.1创建用户 ```shell create user ‘nz’ identified by ‘123456’ # hzm:用户账号,123456:密码 create user ‘nz’@’%’ identified by ‘123456’ #所有ip都可用账号 create user ‘nz’@’localhost’ identified by ‘123456’ #本地可用账号 create user ‘nz’@’192.168.12.1’ identified

    2024年02月16日
    浏览(37)
  • MySQL数据库——MySQL创建用户(3种方式)

    MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数

    2024年02月05日
    浏览(30)
  • 【数据库】 mysql用户授权详解

    目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 mysql刚安装时,临时密码会存储在 /var/log/mysqld.log 1,查看临时密码 方法一:直接给出密码   方法二:查到的语句的最后为

    2024年02月11日
    浏览(42)
  • 【Mysql数据库 第13章】MySQL的事务、事务的隔离级别、事务的保存点

    💖Spring中的创建对象的三种方式、第三方资源配置管理详细描述及使用(XML版完结篇) 💖Spring中的bean的配置、作用范围、生命周期详细描述及使用(XML版上篇) 💖

    2023年04月20日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包