MySQL之DCL

2023-11-18

DCL (Data Control Language)

  • DDL: create / alter / drop
  • DML:insert /update/delete
  • DQL :select /show
  • DCL :grant /revoke

​ 我们现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。

mysqld 是 MySQL 的主程序,服务器端。mysql 是 MySQL 的命令行工具,客户端。

1. 创建用户

语法:

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

关键字说明:

关键字 说明
‘用户名’ 将创建的用户名
‘主机名’ 定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost,如果想让该用户可以
从任意远程主机登陆,可以使用通配符%
‘密码’ 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

具体操作:

创建 user1 用户,只能在 localhost 这个服务器登录 mysql 服务器,密码为 123

create user 'user1'@'localhost' identified by '123';

创建 user2 用户可以在任何电脑上登录 mysql 服务器,密码为 123

create user 'user2'@'%' identified by '123';

创建的用户名都在 mysql 数据库中的 user 表中可以查看到,密码经过了加密。

2. 给用户授权

用户创建之后,没什么权限!需要给用户授权

语法:

GRANT 权限 1, 权限 2... ON 数据库名.表名 TO '用户名'@'主机名';

关键字说明:

关键字 说明
GRANT…ON…TO 授权关键字
权限 授予用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。如果要授
予所有的权限则使用 ALL
数据库名.表名 该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作
权限则可用表示,如.*
‘用户名’@‘主机名’ 给哪个用户授权,注:有 2 对单引号

具体操作:

给 user1 用户分配对 test 这个数据库操作的权限:创建表,修改表,插入记录,更新记录,查询

grant create,alter,insert,update,select on test.* to 'user1'@'localhost';

用户名和主机名要与上面创建的相同,要加单引号。

给 user2 用户分配所有权限,对所有数据库的所有表

grant all on *.* to 'user2'@'%';

3. 撤销权限

语法:

REVOKE 权限 1, 权限 2... ON 数据库.表名 revoke all on test.* from 'user1'@'localhost'; '用户名'@'主机名';

关键字说明:

关键字 说明
REVOKE…ON…FROM 撤销授权的关键字
权限 用户的权限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等,所有的权
限则使用 ALL
数据库名.表名 对哪些数据库的哪些表,如果要取消该用户对所有数据库和表的操作权限则可用
示,如
.*
‘用户名’@‘主机名’ 给哪个用户撤销

具体操作:

撤销 user1 用户对 test 数据库所有表的操作的权限

revoke all on test.* from 'user1'@'localhost';

4. 查看权限

语法:

SHOW GRANTS FOR '用户名'@'主机名';

具体操作:

查看 user1 用户的权限

在这里插入图片描述

usage 是指连接(登陆)权限,建立一个用户,就会自动授予其 usage 权限(默认授予)。

5. 删除用户

语法

DROP USER '用户名'@'主机名';

具体操作:

删除 user2

drop user 'user2'@'%';

在这里插入图片描述

6. 修改管理员密码

语法

mysqladmin -uroot -p password 新密码

需要在未登陆 MySQL 的情况下操作,新密码不需要加上引号。

具体操作:

  • 将 root 管理员的新密码改成 123456
  • 要求输入旧密码
  • 使用新密码登录

在这里插入图片描述

7. 修改普通用户密码

语法:

set password for '用户名'@'主机名' = password('新密码');

具体操作:

  • 将’user1’@‘localhost’的密码改成’666666’
  • 使用新密码登录,老密码登录不了

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL之DCL 的相关文章

  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • 删除、截断或删除以清理 MySQL 中的表

    我正在尝试清理表格 但没有摆脱表格的实际结构 我有一个id自动递增的列 我不需要保留ID号 但我确实需要它来保持其自动递增的特性 我发现了删除和截断 但我担心其中之一会完全删除整个表 从而使未来的插入命令变得无用 如何从表中删除所有记录以便
  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • PHP 和 MySQL 的重音字符错误

    我的问题是 直接通过 PHP 编写的内容是正确重音的 但是当重音单词来自 MySQL 时 字母会像这样 我尝试使用html charset as ISO 8859 1它修复了 MySQL 字母 但破坏了其他字母 解决这一切的一种方法是设置我
  • 如何使用php在mysql数据库中添加照片? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我对 PH
  • 在 LINQ 中执行 FirstOrDefault 的替代方法

    我有一个成员资格表 用于记录用户是否是列表的成员 当用户的成员资格发生更新时 会写入新记录 并且先前的记录保持原样 从而可以维护其成员资格的历史记录 要获取用户的会员身份 需要选择他们最近的条目 下面是一些用户列表成员资格数据的示例 目的是
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • 在 Python 中,如果我有 unix 时间戳,如何将其插入 MySQL 日期时间字段?

    我正在使用 Python MySQLDB 我想将其插入 Mysql 中的 DATETIME 字段 我该如何使用cursor execute 来做到这一点 要将 UNIX 时间戳转换为 Python 日期时间对象 请使用datetime fr
  • MySQL 薛定谔表:存在,但不存在

    我遇到了最奇怪的错误 有时 在创建或更改表时 我会收到 表已存在 错误 但是 DROP TABLE 返回 1051 未知表 所以我得到了一个无法创建 无法删除的表 当我尝试删除数据库时 mysql 崩溃了 有时它有助于创建另一个具有不同名称
  • MySQL 组合两个查询

    我有两个 MySQL 查询 QUERY SELECT sodnik 1 FROM prihodnji krog WHERE file id 8778 AND sodnik 1 UNION SELECT sodnik 2 FROM priho
  • DataTables 第 2 页的分页未调用放大弹出窗口

    所以我有这个启用分页的数据表 我编码了一种方式 以便用户可以编辑表的行 当用户调用它在放大弹出窗口中打开的编辑页面时 它在第 1 页 从第 2 页起都运行良好 DataTable 及其前面停止调用 Magnific Popup 我只是不明白
  • 如何删除MySQL中的所有事件

    如果我想删除某个事件 我需要查询类似的内容 DROP EVENT IF EXISTS eventname 但我找不到一次性删除所有事件的命令 必须一项一项地删除 有没有一次性删除所有事件的SQL DROP EVENT IF EXISTS S
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • parent_id 是外键(自引用)并且为 null?

    浏览 Bill Karwin 的书 SQL Antipatterns 第 3 章 Naive Trees 邻接表 父子关系 有一个注释表的示例 CREATE TABLE Comments comment id SERIAL PRIMARY

随机推荐

  • UPLOAD labs 第四关

    第四关考点是 htaccess 作为一个铁废物 来百度一下 大意就是htaccess是apache服务中的一个配置文件 负责相关目录下的网页配置 它负责相关目录下的网页配置 通过htaccess文件 可以帮我们实现 网页301重定向 自定义
  • Ubuntu 17.04系统创建Android Studio桌面快捷方式的方法

    下面以 Android Studio 为例 阐述Ubuntu系统中创建桌面快捷方式的方法 假设已将 Android Studio 下载到 home
  • 在 Win11安装 Ubuntu20.04子系统 WSL2 到其他盘(此处为D盘,因为C盘空间实在不能放应用)

    该篇文章记录了在 win11 中安装 Ubuntu20 04 子系统 先安装到 C盘 再通过打包的方式 安装到 D盘 上 因为是安装后写的文章 可能会有所疏漏 所以有任何问题可以在评论区留言 0 设置 windows 功能 打开这三个 配置
  • everything 和quicklook联动

    everything 和quicklook联动 老凶残的解决方案了 https www logcg com archives 1584 html
  • 数据库原理之关系数据库关系运算

    关系数据库关系运算 选择 投影 链接 除运算 选择运算 选择运算是从关系R中选取使逻辑表达式F为 真的元组 是从行的角度进行的运算 投影运算 投影操作主要是从列的角度进行运算 但投影之后不仅取消可原关系中的某些列 而且还可能取消某些元组 避
  • Qt自定义代理与实例

    代理的定义 代理 Delegate 就是在视图组件上为编辑数据提供编辑器 如在表格组件中编辑一个单元格的数据时 缺省是使用一个QLineEdit编辑框 代理负责从数据模型获取相应的数据 然后显示在编辑器里 修改数据后 又将其保存到数据模型中
  • android自定义属性详解,android开发教程之自定义属性用法详解

    android开发中要对代码进行生成 然而生成后的代码也可以进行更改的 下面是爱站技术频道小编带给大家的android开发教程之自定义属性用法详解 希望能给你学习这方面知识带来帮助 最近项目中经常需要用到自定义控件 因此自定义属性也是经常要
  • 基于EasyCode定制Mybatisplus全自动单表实现:新增/批量新增/修改/批量删除/分页查询/ID查询

    基于EasyCode定制Mybatisplus全自动单表实现CRUD接口 分页查询 ID查询 新增 批量新增 修改 批量删除 注意使用了MybatisPlus的自动填充功能 和insertBatchSomeColumn扩展批量插入功能 分页
  • 浅析MySQL JDBC连接配置上的两个误区

    相信使用MySQL的同学都配置过它的JDBC驱动 多数人会直接从哪里贴一段URL过来 然后稍作修改就上去了 对应的连接池配置也是一样的 很少有人会去细想这每一个参数都是什么含义 今天我们就来聊两个比较常见的配置 是否要开启autoRecon
  • 推荐一款cpp解析json工具--rapidjson

    项目地址 http code google com p rapidjson 上面有很详细的介绍 http code google com p rapidjson wiki UserGuide 作者介绍说 Rapidjsonis an att
  • k8备份与恢复-Velero

    简介 Velero 是一款可以安全的备份 恢复和迁移 Kubernetes 集群资源和持久卷等资源的备份恢复软件 Velero 实现的 kubernetes 资源备份能力 可以轻松实现 Kubernetes 集群的数据备份和恢复 复制 ku
  • 华为OD机试真题-优秀学员统计 【2023.Q1】

    题目描述 公司某部门软件教导团正在组织新员工每日打卡学习活动 他们开展这项学习活动已经一个月了 所以想统计下这个月优秀的打卡员工 每个员工会对应一个id 每天的打卡记录记录当天打卡员工的id集合 一共30天 请你实现代码帮助统计出打卡次数t
  • 算法:双指针解决数组划分和数组分块问题

    文章目录 实现原理 实现思路 典型例题 移动0 复写0 快乐数 盛最多水的容器 有效三角形的个数 三数之和 四数之和 总结 在快速排序或者是其他和数组有关的题目中 有很经典的一类题目是关于数组划分的 数组划分就是把数组按照一定的规则划分为不
  • Androidmainfest主配置文件以及intent的跳转

  • openwrt利用arp获取局域网设备IP

    openwrt利用arp获取局域网设备IP 文章目录 openwrt利用arp获取局域网设备IP 1 前言 2 ARP概念 3 arp局域网搜索设备实现思路和代码 1 前言 目前我们通过arp协议搜索局域网设备 根据局域网设备地址判断子设备
  • centos linux部署pxe服务器实现自动装机,照做就行

    大家好 今天分享一下在centos linux上部署pxe服务器来实现自动化的装机 关于这个东西的话 记住一点就可以了 就是pxe可以给很多服务器自动的安装操作系统 这样省时省力 这是pxe服务器的工作流程 我个人觉得他已经很详细了 下面来
  • python--商店购物案例(字典篇)--小黑学习驿站

    目录 案例 def 函数说明 global 内部声明函数 案例 水果店老板有N种水果 如果老板要新进一批水果该怎么循环添加 当客人买不同水果的时候该怎样计算 思路 1 首先思路是水果老板店里的水果和价钱做一个字典 然后利用字典循环添加新的水
  • 使用jcvi绘制微共线性(Microsynteny)

    本文主要介绍如何使用JCVI的synteny子命令基于已有的共线性分析结果 展现局部的共线性 需要准备的三个输入文件 记录物种内或者物种间的共线性基因对 记录基因坐标的bed文件 布局文件 第一步 基于已有的共线性分析结果 WGDI MCs
  • VS登录问题 无法刷新账户凭证 (Microsoft Visual Studio)

    1 问题描述 VS登录时 弹出错误 无法刷新此账户的凭证 2 解决办法 打开默认的浏览器 我的电脑上默认浏览器是搜狗 1 打开选项设置 2 打开Internet选项 点击连接 再点击局域网设置 3 勾选自动检测设置 取消其它勾选 4 VS恢
  • MySQL之DCL

    DCL Data Control Language DDL create alter drop DML insert update delete DQL select show DCL grant revoke 我们现在默认使用的都是 ro