MySQL数据库语言三、DCL语句

news2024/11/22 4:37:44

 😘作者简介:正在努力的99年公司职员。
👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。
🙏创作不易,动动小手给个点赞加关注吧,有什么意见评论区告诉我,一起学习。

目录

前言

DCL语句

权限级别

MySQL用户管理

创建用户

 删除用户

 修改密码

忘记root密码,怎么找回

免登陆操作数据库

MySQL用户授权

语法格式

赋予用户权限测试

创建用户

给sure1用户授权

 测试权限

查看自己权限

查询别人权限

 收回权限

用客户机测试sure1权限


前言

        DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

DCL语句

权限级别

Global level:所有库,所有表的权限。

Database level:某个数据库中的所有表的权限。

Table level:库中的某个表的权限

Column level:表中的某个字段,的权限。

MySQL用户管理

用户管理这次主要从创建用户、删除用户、修改用户密码来介绍,以及介绍怎么不登录数据库来对数据库进行操作。

创建用户

首先登录到MySQL。

mysql  -uroot   -p'root密码';

语法:create  user    用户名@客户端IP   identified  by   '用户登录密码';

create user sure1@localhost   identified by 'Sure.520';        //创建用户sure1.

sure1:创建的用户的用户名。

localhost:这里是创建本机登录的账号所以填了localhost,也可以填本机ip,如果是创建给客户机登录这里需要填的是客户端的IP。

identified  by :这是关键字后面跟空格加密码

创建好的用户会被记录到mysql库中的user表中。可以通过use mysql进入到mysql库,然后通过show tables;可以看到有user表。

 创建好之后可以通过查看user表的内容来查找到我们刚刚创建的用户。

select user from user;

因为user表中记录了很多内容,只看user列的信息看到刚刚创建的用户sure1在这里可以查到。

 删除用户

语法:drop   user   用户名@客户机ip;

删除刚刚创建的sure1用户。

drop   user   sure1@localhost;

 删除之后,通过查询user表的信息没有sure1,说明删除成功。

 修改密码

这里通过修改root密码来进行操作。

修改密码有两种方式:

1、不登录mysql修改密码(在部署MySQL的时候修改默认root密码使用的方法)

2、登录mysql修改密码。还可以通过修改user表来修改密码。

不登录mysql来修改root密码

语法:mysqladmin  -uroot    -p'旧root密码'    password   '新的root密码'

注意:-p后面紧跟旧密码没有空格,password后面需要跟个空格再写新的密码。

我原本的密码是Sure.520,现在修改为Sure.123

输入完命令后如果没有ERROR提示出现就算成功了。

修改完之后再用原来的Sure.520登录就报错了提示密码错误。

使用新密码Sure.123登录成功了。

 登录MySQL修改密码

语法:alter    user   'root'@'localhost'   identified by  '新密码';

这是centos9/MySQL8.0的语法。

修改完以后需要执行一条命令。

flush    privileges;

命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

 

 这里我又将密码改成了Sure.520

 通过修改user表信息来修改密码在下面的找回root密码来实验。

忘记root密码,怎么找回

当忘记root密码的时候我们需要进行密码破解,要对mysql的配置文件进行修改。

找回root密码需要以下操作:

1、修改mysql配置文件,使mysql启动的时候不加载密码文件,实现免密登录,修改完需要重新mysql服务

2、免密登录mysql后,通过对user表的操作来清空root密码

3、退出mysql将配置文件的免密登录的部分注销,重启mysql服务

4、通过mysqladmin  -uroot    -p' '    password   '新的root密码'   修改root密码。

5、使用新密码登录MySQL

1、修改mysql配置文件

vim   /etc/my.cnf

在[mysqld]下加入一下内容

skip-grant-tables

保存退出重启mysql服务。

systemctl  restart  mysqld

如果重启失败,去检查配置文件,配置文件有错误命令,会导致重启失败。

2、 配置完重启服务之后进行免密登录。

 2.1通过修改user表的root密码列来修改root的密码。

语法:update   mysql.user  set  authentication_string=''  where  user='root'; 

这里要将密码清空。

注意:这里使用alter去修改密码会报错,因为现在是免密登录,是不需要授权密码的,所以系统会报错。

 3、退出mysql进入配置文件将刚刚增加的免密登录的配置注释,重启服务。

\q是退出MySQL。

#skip-grant-tables

重启服务systemctl  restart  mysqld

 

4、修改密码,通过新密码登录 MySQL

 [root@localhost ~]# mysqladmin -uroot -p' '  password 'Sure.666'

在Enter password:直接按回车即可。因为密码刚刚清空了。

 这样我们就找回了我们饿root密码。

免登陆操作数据库

免登陆操作数据库内的内容,不需要登录到MySQL界面来操作数据库,在通过脚本来操作数据库的时候需要用到该操作。

语法:mysql    -u用户名    -p'密码'   -P  MySQL服务端口   -h需要登录的服务器主机   -e  'SQL语句'

出现几个新的选项-P   -h   -e

-P:MySQL的服务端口,默认是3306

-h:MySQL服务器的主机,在后面用MySQL客户端的时候需要写,默认是localhost

-e:后面加空格接'sql语句'

需求:免登陆查看所有的库

 不登录数据库也可以看到所有库,当然也可以进行其他操作。

MySQL用户授权

通过创建用户给用户授权,让用户拥有一些权限来操作数据库,在生产环境中,不可能所有人都是用root账号来操作数据库,这个时候就需要来创建一些用户,并赋予一部分权限来完成日常的工作即可。

语法格式

语法: grant      权限列表  on    库名.表名   to    '用户名'@'客户端主机'    [with option参数];

权限列别:

        all:所有权限,增删改查

        select:查询权限

        select、delete:查询和删除权限

        select(列名):某个字段的查询权限                //     Column level

库名.表名:

        *.*:所有库,所有表的权限                    //Global level

        库名.*:某个库的所有表的权限                //Database level

        库名.表名:某个库某个表的权限                 //Table level

客户端主机:

        %:所有主机

        192.168.79.%:指定网段的主机

        192.168.79.139:指定某个具体主机

with  option:

         WITH   GRANT OPTION:授权选项

        如果这里写了,就代表了该用户可以继续给下一个用户授权,一般授权的时候不给这个权限,因为不方便管理。

赋予用户权限测试

需求:给客户机192.168.79.139的sure1授予对game库的player表的查询权限。

步骤:首先需要先创建sure1的用户

           用root用户给sure1授权

           测试权限。

创建用户

创建192.168.79.139客户端sure1用户

create user sure1@192.168.79.139 identified by 'Sure.123';

注意:这里@后面跟的ip是客户端的ip,这里是192.168.79.139,也就是sure1的账号只有192.168.79.139主机可以使用这个账号登录到服务器的mysql,这里ip是多少,接下来授权的客户端ip就要是多少。

为了验证这个账号的登录权限,在本机测试登录

 提示登录失败,提示访问被拒绝。再在192.168.79.139主机上登录测试。

首先需要在客户端上安装MySQL客户端,只需要安装sql客户端即可。

yum -y install mysql-community-client.x86_64

不不知道具体安装包的名字,可以通过yum  list | grep mysql来查看。

安装完成之后测试使用sure1用户登录mysql服务器的数据库。

mysql -usure1 -p'Sure.123' -h'192.168.79.138'

注意:这里-h后面要跟服务器的IP。否则将报错。

 可以看到登录进来了,并且能够查到两个库,发现其他的库看不到,因为还没有给授权,接下来将对sure1用户进行授权。

给sure1用户授权

切换到192.168.79.138mysql服务器这台主机用root账号登录mysql。

给sure1赋予对game库的player表的查询权限。

grant select on game.player to 'sure1'@'192.168.79.139';

 测试权限

去192.168.79.139主机登录sure1账号测试权限

可以看到game库。

 

也可以查询player表的内容。 

 发现两台主机查看到的game内的表数量不一样。

测试向player内插入数据

提示操作被拒绝。 

查看自己权限

语法:show  grants; 

这就是sure1的权限,只有对game库中的player表查询权限。 

查询别人权限

语法:SHOW GRANTS FOR   用户@'主机地址'

其他主机没有无法查看root的权限。

用MySQL服务器查看root权限

show   grants  for  root@localhost\G;

\G是自动换行的意思。

 收回权限

语法:REVOKE   权限列表   ON   数据库名   FROM   用户名@‘客户端主机’

需求:收回sure1的所有权限

revoke   all privileges  on  game.player  from  sure1@'192.168.79.139';

用客户机测试sure1权限

用192.168.79.139主机测试权限收回情况。

发现已经看不到game库了。回到了刚刚创建完用户的状态。 

查看自己的权限。 

 

 已经没有对数据库操作的权限。


阅读十遍不如操作一遍,一起操作学习吧!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

绩效管理的本质是激发员工,而不是扣工资!

绩效管理是企业管理中非常重要的一个环节,通过对员工表现进行评估和奖励,可以提高整个团队的士气和生产力。 然而,在实际操作中,有些企业却将绩效管理变成了惩罚员工的手段,甚至使用绩效扣除员工的薪水。这种做法不仅…

VALSE 2023:版面分析技术如何赋能生产生活?

目录 0 写在前面1 文档版面分析2 版面元素检测3 文档排版引擎总结 0 写在前面 VALSE年度研讨会旨在为中国青年学者在计算机视觉、图像处理、模式识别与机器学习研究领域提供一个具有深度的学术交流平台。VALSE秉持理性批判、勇于探索、实证和创新等科学精神,倡导自…

光伏电池建模及温度光照的影响曲线

光伏电池建模及温度光照的影响MATLAB程序及仿真资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910193模型介绍: 需要MATLAB2018B及以上的版本!! 首先根据根据环境修正公式搭建光伏电池仿真模型: 温度变化…

传统机器学习算法解析(opencv实现)

前言 文本主要解析在传统机器学习当中一些小的算法与思想,只是传统机器学习算法当中的一小部分,更多传统机器学习算法可参考我的另外几篇博客 链接1: PCA主成分分析 链接2: Canny边缘检测算法 链接3: K-Means聚类算法 链接4: SIFT算法分析 1. opencv …

MMDeploy安装和pth转ONNX

参考: https://github.com/open-mmlab/mmdeploy/blob/main/README_zh-CN.md MMDeploy安装指导 MMDeploy 是 OpenMMLab 模型部署工具箱,为各算法库提供统一的部署体验。基于 MMDeploy,开发者可以轻松从训练 repo 生成指定硬件所需 SDK&#…

0x80080005 windows更新失败导致的net framework3.5安装失败

缘起 客户安装应用软件提示需要安装net framework3.5 sp1,但是下载了net framework的安装包后一直提示正在下载中,后来发现系统的windows更新功能都用不了,真的是坑啊。 解决方案 按Windows按键(田字按键)X,选择Powe…

2023-6-15-第六式适配器模式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…

如何通过java程序获取表的自增主键值?

获取自增主键: 在 Java 程序中,使用 JDBC 插入记录到 MySQL 数据库时,可以通过以下步骤获取自增主键的值: 第一步:在 PreparedStatement 对象中添加 Statement.RETURN_GENERATED_KEYS 常量作为参数,表示希…

Zabbix与信创、云原生、高可用等热点解析|Zabbix大会·上海站

根据信通院调研显示,超过90%的中国金融机构已经引入开源软件。工信部突出强调开源在驱动软件产业发展的重要作用。作为一个完全开源免费的企业级监控解决方案,Zabbix在IT基础监控、网络监控、Server监控和云监控等领域都获得了同行和用户极高的评价。 Za…

html好看的登录页面1(十三种风格登录页面源码)

文章目录 1.登录风格效果说明1.1 背景凹起风登录界面1.2 弹出风登录界面1.3 科技时尚风登录界面1.4 蓝色一夏风登录界面1.5 模糊背景左右风登录界面1.6 上中下介绍风登录界面1.7 深沉科技风登陆界面1.8 舒适简洁风登录界面1.9 网站风登录界面1.10 小框清爽风登录界面1.11 夜色风…

【IoU全总结】GIoU, DIoU, CIoU, EIoUFocal, αIoU, SIoU,WIoU【基础收藏】

🥑 Welcome to Aedream同学 s blog! 🥑 并不存在效果一定优秀的IoU,需要结合自己的网络、数据集试验。 不想深究原理可直接跳转总结。文内公式均为手打,非图片,方便查看 文章目录 L1 Loss,L2Loss&#xff0…

深入浅出剖析EL表达式和JSTL

el表达式 产生背景 从JSP2.0开始,就不推荐使用java脚本,而是使用el表达式或者动态标签代替 java脚本; 页面标签; 概念和原理 概念:Expression Language :jsp内置的一种表达式语言;原理:el表达式的出现目的是替换js…

这些excel英语翻译方法你会吗?

大家平常的时候应该都会去做Excel表格吧?无论是在读书、上班或者日常,必然都会使用到吧?但是在处理国际业务时,我们要来处理表格就会比较费时一点,因为语言的不同会有一点影响,所以我们可能需要将Excel表格…

第九章节 用Python实现常微分方程初值问题的数值解法

参考书籍:数值分析 第五版 李庆杨 王能超 易大义编 第9章 常微分方程初值问题的数值解法 文章声明:如有发现错误,欢迎批评指正 文章目录 欧拉法后退的欧拉方法梯形方法改进欧拉公式补充龙格—库塔方法线性多步法阿当姆斯显示与隐式公式 9.1引…

cesium学习(entities实体)

什么是entities CesiumJS具有丰富的空间数据API,可分为两类:面向图形开发人员的低级Primitive API,以及用于数据驱动可视化的高级Entity API。 entitiesAPI公开了一组一致设计的高级对象,这些对象将相关的可视化和信息聚合到一个…

(转载)有导师学习神经网络的分类(matlab实现)

有导师学习神经网络以其良好的学习能力广泛应用于各个领域中,其不仅可以解决拟合回归问题,亦可以用于模式识别、分类识别。将继续介绍两种典型的有导师学习神经网络(GRNN和PNN),并以实例说明其在分类识别中的应用。 1 理论基础 1.1 广义回归神经网络(…

小雉系统U盘安装包制作

​ 本文原地址: http://www.feitianzhi.com/boke/index.php/archives/57/ 概述 小雉系统可从线上系统制作安装包到U盘,制作的安装包可用于新系统的安装; 小雉系统只提供升级包,对应的安装包均是客户在应用升级包后按本文或http://www.f…

为什么AirtestIDE的selenium Window突然无法检索控件了?

1. 前言 最近有很多朋友跟我们反馈,为什么1.2.15版本的IDE没办法做网页元素检索了,是不是我们不支持selenium了之类的。 测试后发现,目前版本确实存在这个问题,原因是Chrome113.0.5672.127(最新)版本过高,AirtestIDE…

ansible 的学习

目录 ansible学习思路: ansible是什么? 官网:Ansible is Simple IT Automation ansible的组成: 参考文档:Ansible入门与playbook实战-~学无止境,学以致用 ^ _ ^-51CTO博客 ansible操作体验: 1、先…

机器学习算法(一)KNN近邻算法

一、KNN算法概述 KNN:K-Nearest-Neighbor算法,即K值为邻近。KNN是最简单的分类算法之一,同时,也是最常用的分类算法之一。KNN算法是有监督学习中的分类算法。 二、原理 基于基于iris数据集,具体经历下面四步流程&am…