数据库(MySQL)—— 初识和创建用户

打印 上一主题 下一主题

主题 226|帖子 226|积分 678

我们本日进入数据库的学习:
什么是数据库

数据库是一个专为高效管理和存储数据而计划的系统,它允许以结构化方式组织、存储、检索和管理大量信息。在盘算机科学中,数据库不仅仅是一个数据容器,它还包罗一套管理这些数据的规则、方法和技能,这通常通过数据库管理系统(DBMS)来实现。
详细来说,数据库的焦点特点包罗:

  • 数据结构化:数据按照特定的数据模型(如关系型、文档型、图形型等)组织,确保数据的一致性和可推测性。
  • 数据存储与管理:数据库提供了一个中央位置来存储数据,使得数据可以被多个用户或应用程序共享,并且保证数据的安全性与完整性。
  • 数据操作与查询:通过数据库管理系统,用户可以执行增删改查(CRUD)操作,即创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。
  • 数据访问控制:确保只有经过授权的用户才气访问或修改数据,维护数据的安全性。
  • 数据独立性:数据库计划使得数据的逻辑结构与物理存储方式相分离,使得数据的存储方式改变时,不影响到应用程序对数据的访问。
简而言之,数据库就像是一个高度组织化和管理严酷的电子文件柜,它使数据的存储、检索和管理变得高效而有序,是现代信息技能中不可或缺的组成部分。
数据库的种类

以下是一些知名的数据库软件:
   

  • Oracle Database - 由甲骨文公司开发的关系型数据库管理系统,广泛应用于企业情况,以其高性能、可靠性和丰富的功能集著称。
  • MySQL - 一个开源的关系型数据库管理系统,实用于各种规模的应用程序,从个人项目到大型网站均能胜任。MySQL以其易用性、高效率和成本效益受到欢迎。
  • Microsoft SQL Server - 微软开发的企业级数据库管理系统,得当Windows平台,提供强大的数据处理能力,支持复杂的事务处理和贸易智能应用。
  • PostgreSQL - 另一款开源对象关系型数据库系统,以其稳定性、合规性(如ACID兼容)和强大的扩展性受到开发者青睐。
  • MongoDB - 一种流行的非关系型(NoSQL)数据库,特别得当处理大规模的、半结构化的数据,如Web应用和实时数据分析。
  • SQLite - 轻量级的嵌入式数据库引擎,常用于移动装备和小型应用,因其零配置、无服务器要求而广受欢迎。
  • MariaDB - 作为MySQL的一个分支,MariaDB由MySQL的原始开发者创立,旨在保持开源精神,提供更多的功能和性能改进。
  • IBM DB2 - IBM开发的关系型数据库,实用于大型企业情况,特别是在必要高级数据处理和分析的场景下。
  • Amazon Web Services (AWS) Aurora - AWS提供的云原生关系型数据库服务,计划用于与MySQL和PostgreSQL兼容,夸大高性能和高可用性。
  • Google Cloud Spanner - Google的环球分布式关系型数据库服务,提供强一致性、程度扩展和高性能。
  别的,还有其他一些数据库软件如Redis(键值存储数据库)、Elasticsearch(搜索引擎和分析数据库)以及上述提及的一些云存储办理方案(如天翼云盘、百度网盘等),固然它们在功能和用途上可能与传统意义上的数据库软件有所不同,但也在各自的范畴内具有很高知名度。
我们这里以MySQL进行学习:
创建用户

MySQL有个不一样的地方在于,别的编程软件一来就是可以直接上手写代码,但是MySQL 要区分当前操作的人是谁,以是有了用户的概念。
在安装好MySQL之后,我们一样平常的用户是root,root是超级用户,拥有极高的权限,我们一样平常第一次使用MySQL时,就是以root用户进行操作的。
之后我们就可以依据这个root账号来进行登录:
mysql -h 主机名或IP地址 -u 用户名 -p 登录mysql

   mysql -h 主机名或IP地址 -u 用户名 -p
  比如我想以root身份登录:
   mysql -h localhost -u root -p
  

我们就乐成登录了,但是我们照旧有一个疑虑:这个localhost是什么鬼:

这个其实是创建用户时添加的限定条件,指定用户可以从哪里可以登录数据库
   在MySQL中创建用户时,localhost 是指用户可以从本地主机毗连到MySQL服务器。实际上,除了 localhost 之外,你还可以指定其他主机名或者IP地址来控制用户可以从哪些位置访问数据库,这让MySQL的用户权限管理更加机动。以下是创建用户时可以采用的几种主机名/地址指定方式:
  

  • 特定IP地址:
    你可以指定一个确切的IP地址,如 'username@192.168.1.100',这限定用户只能从该IP地址毗连。
  • IP地址范围:
    使用通配符指定一个IP地址段,例如 'username@192.168.1.%' 允许用户从 192.168.1.0/24 子网内的任何地址毗连。
  • 网段:
    乃至可以更广泛地指定,如 'username@10.0.0.0/8',允许来自整个 10.0.0.0 网段的所有IP地址的毗连。
  • % (任意主机):
    如果盼望用户能够从任意远程主机毗连,可以使用 'username@%'。这种方式提供了最大的机动性,但也可能带来安全风险,因此需谨慎使用。
  • 域名:
    除了IP地址,你还可以使用域名,如 'username@example.com',这实用于知道用户将从特定域名下的服务器毗连的情况。
  创建用户的根本下令格式通常是这样的:
  1. CREATE USER 'username'@'host' IDENTIFIED BY 'password';
复制代码
此中,host 部分可以用上述提到的各种方式来指定。记得在创建用户后,通常还必要通过 GRANT 下令来分配详细的数据库访问权限给该用户。
我们可以以上面的方式来创建一个用户:

我创建了一个用户sun,规定只能从本机上进行登录,暗码的是123456。
SELECT USER(); 检察当前用户

SELECT USER(); 用来检察当前用户

如果还想看这个用户的权限可以使用SHOW GRANTS FOR CURRENT_USER;

这样可以列出该用户的所有权限,可以看到root@localhost的权限非常高了。
切换用户

切换用户,我们要先退出当前用户,可以使用exit或者**\q**:
我们登录一下我们刚刚创建的新用户:
检察一下当前用户:

我们看一下他的权限:
这行代码的意思是:
   这个MySQL下令授予了一个名为sun的用户在localhost上执行某些操作的权限
  1. GRANT USAGE ON *.* TO `sun`@`localhost`;
复制代码
  让我们详细表明这个下令:
  

  • GRANT:这是用于授予用户权限的MySQL下令。
  • USAGE:这是要授予用户的权限。在这种情况下,它允许用户毗连到MySQL服务器,但不授予任何其他权限。
  • ON *.*:这表现权限将应用于所有数据库(*)和所有表(*)。
  • `sun`@`localhost`:这是要授予权限的用户。用户名为sun,主机名为localhost。
  执行此下令后,名为sun的用户将能够在localhost上毗连到MySQL服务器,但不能执行任何其他操作,如查询、插入、更新等。要为该用户授予其他权限,您必要使用雷同的GRANT下令并指定相应的权限和数据库/表。例如,要为sun用户授予对名为mydb的数据库的所有权限,可以使用以下下令:
  1. GRANT ALL PRIVILEGES ON `mydb`.* TO `sun`@`localhost`;
复制代码
在执行GRANT下令后,不要忘记使用FLUSH PRIVILEGES;下令使更改收效。
执行赋予权限的下令要在root账户下进行,以是我们先退出来,进入root账户:
GRANT ALL PRIVILEGES ON 赋予用户权限

我们进入到root账户:
我们将root的对所有数据库的所有表的所有权限赋予给sun:

使用FLUSH PRIVILEGES;让下令立刻收效:

我们重新以sun的身份登入:
发现sun的权限已经齐备了。
REVOKE 撤销权限

REVOKE 下令在MySQL中用于撤销先前赋予给用户的数据库权限。它的根本语法结构雷同于 GRANT 下令,用于淘汰或取消用户对数据库或表的操作权限。根本格式如下:
  1. REVOKE privileges ON database_name.table_name FROM 'username'@'host';
复制代码
各部分说明与 GRANT 下令相似:
   

  • privileges:你想要撤销的权限,可以是之前赋予的任意权限或权限组合。
  • database_name.table_name:指定权限撤销的数据库和表。使用 *.* 表现撤销所有数据库的所有表的相应权限。
  • 'username'@'host':指定权限被撤销的用户及其允许毗连的主机来源。
  示例

   

  • 撤销特定数据库的所有权限:
  1. REVOKE ALL PRIVILEGES ON mydb.* FROM >'username'@'localhost';
复制代码
这撤销了 username 用户从本地主机对 mydb 数据库的所有权限。
  

  • 撤销特定表的读写权限:
  
  1. REVOKE INSERT, UPDATE ON mydb.mytable FROM >'username'@'%';
复制代码
从所有主机撤销了 username 对 mydb 数据库中 mytable 表的插入和更新权限。
  

  • 撤销全局查询权限:
  
  1. REVOKE SELECT ON *.* FROM 'readonly_user'@'localhost';
复制代码
撤销了 readonly_user 从本地主机查询所有数据库的权限。
  留意事项

   

  • 即时性:权限撤销操作立刻收效,但已建立的毗连可能直到断开重连后才受影响。
  • WITH GRANT OPTION:
    如果之前使用 WITH GRANT OPTION 授予权限,撤销时应明确指出,以取消该用户转授权限的能力。
  • 权限条理:
    有时,权限的撤销可能不会按预期工作,特别是当用户属于拥有更广泛权限的组时。确保查抄并考虑用户所属的脚色和组的权限。
  在执行 REVOKE 下令前,务必确认你要撤销的权限是正确的,以免影响数据库的正常运作。如同 GRANT,执行这些操作通常必要 root 或具有足够权限的用户身份。
MySQL的图形化界面工具

MySQL也有丰富的图形化界面工具:
   

  • phpMyAdmin: 一个开源的、基于Web的MySQL管理工具,广泛应用于共享主机情况。它支持多语言,包罗中文,提供了根本的数据库管理功能,如创建数据库、数据表,执行SQL查询,管理用户权限等。
  • MySQL Workbench: MySQL官方提供的一个强大的图形化工具,实用于数据库计划和管理。它支持数据库建模、SQL开发、数据导入导出、性能分析和服务器管理等高级功能,分为免费的社区版和付费的贸易版,支持Windows、Linux和macOS。
  • Navicat: 一个跨平台的数据库管理工具,支持MySQL以及其他多种数据库类型。它提供了一个直观的界面来进行数据库管理、数据迁移、备份恢复、数据同步等操作,并且有中文界面和免费版本。
  • SQLyog: 由Webyog开发,专为MySQL计划的图形化管理工具。它拥有快速、简洁的界面,支持多种高级功能,如智能数据导入导出、数据备份恢复、SQL查询构建器等。
  • DBeaver: 一款免费开源的通用数据库管理工具,支持多种数据库类型,包罗MySQL。它提供了丰富的数据编辑、欣赏、ER图生成等功能,并且支持插件扩展,得当跨数据库管理场景。
  • HeidiSQL: 一个轻量级的MySQL和MariaDB客户端,得当Windows用户,也支持一些其他数据库。它简单易用,功能包罗数据欣赏、编辑、SQL查询执行、数据库备份等。
  • DataGrip: 来自JetBrains,是一个功能强大的数据库IDE,支持多种数据库管理系统,包罗MySQL。它以其智能代码补全、高效查询构建、数据导航和操作界面而受到开发者喜爱。
  这里我们以DataGrip为例:
进入DataGrip,点击加号:
选择MySQL:
在框中填入用户名和暗码:



我们可以留意到左上方的这个图标:
这里可以选择我们从前创建的数据库:
这样我们就可以以sun的用户身份对下面的数据库进行操作。
检察所有用户

在MySQL中,要检察所有用户,您可以查询mysql数据库中的user表
  1. SELECT User, Host FROM mysql.user;
复制代码
这将返回一个包含所有用户及其主机名的列表。如果您还想检察每个用户的权限和授权信息,可以使用以下查询:
  1. SELECT User, Host, authentication_string FROM mysql.user;
复制代码
这将表现每个用户的用户名、主机名和加密后的暗码。请留意,authentication_string列可能为空,这意味着用户没有设置暗码。
在执行这些查询时,请确保您具有足够的权限来访问mysql.user表。通常,只有具有PROCESS权限的用户才气检察其他用户的权限和授权信息。

删除用户

在MySQL中,要删除一个用户,可以使用DROP USER下令
  1. DROP USER 'username'@'hostname';
复制代码
将username更换为要删除的用户的用户名,将hostname更换为要删除的用户的主机名。例如,要删除名为testuser的用户,主机名为localhost,可以使用以下下令:
  1. DROP USER 'testuser'@'localhost';
复制代码
在执行DROP USER下令后,请确保使用FLUSH PRIVILEGES;下令使更改收效。
请留意,在删除用户之前,请确保您具有足够的权限来执行此操作。通常,只有具有CREATE USER和DROP USER权限的用户才气删除其他用户。在删除用户时,请确保不会心外删除重要的系统用户或其他用户。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表