Mysql视图特性用户管理

news2024/11/17 16:19:35

目录

一、视图基本使用

二、用户管理

2.1 用户

①用户信息

②创建用户

tips:(解决无法创建用户)

③删除用户

④修改用户密码

2.2数据库的权限

①给用户授权

②回收权限

视图:视图是一种虚拟表。视图是基于一个或多个基础表中的数据所创建的一个查询结果集。视图本身并不包含数据,而是通过基础表中的数据计算出来的结果集。视图包含一系列带有名称的列和行数据。视 图的数据变化会影响到基表,基表的数据变化也会影响到视图。

一、视图基本使用

🖊创建视图

        ​​​​​​​create  view 视图名 as select 语句;

案例:

修改视图,会影响基表的数据:

修改了基表,对视图有影响:

🖊删除视图:

drop view 视图名;

视图规则与限制:

🖊与表一样,必须唯一命名(不能出现同名视图或表名)

🖊创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响

🖊视图不能添加索引,也不能有关联的触发器或者默认值

🖊视图可以提高安全性,必须具有足够的访问权限

🖊order  by 可以用在视图中,但是如果从该视图检索数据select中也含有order by,那么该视图中的 order by将被覆盖

🖊视图可以和表一起使用

二、用户管理

如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用Mysql的用户管理。

张三只能操纵mytest这个库,李四只能操纵msg这个库。如果给他们root账户,那么他们就可以操纵所有的库,风险太大。

2.1 用户

①用户信息

Mysql中的用户,都存储在系统数据库Mysql的user表中。

可以通过desc user详细看一下表结构。

字段解释:

🖊host : 表示这个用户可以从哪个主机登录,如果是localhost,表示只能从本机登录

🖊user : 用户名

🖊authentication_string : 用户密码通过password函数加密后的显示

🖊*_priv: 用户拥有的权限

②创建用户

语法:

create  user  '用户名'@'登陆主机/ip'  identified by '密码';

案例:

此时我们看到新增了用户Gyh,这时便可以使用新账号新密码进行登陆了。

tips:(解决无法创建用户)

如果新增用户时出现报错:

出现这个报错,说明设置你的my.cnfmy.cni的配置中,你在[mysqld]下是设置了

skip-grant-tables

设置了这一条,在登陆mysql时是不需要密码登陆的。但是我们不能在mysql中新增用户了。那么要怎么操作呢?

首先在my.cnfmy.cni文件中删除'skip-grant-tables'这一行

重启mysql服务:

systemctl  restart  mysqld;

获取临时密码:

sudo  grep  'temporary password'  /var/log/mysqld.log

获取临时密码是因为我们已经关闭了无需密码登录mysql,所以需要获取临时密码来登录MySQL

利用临时密码登录,在MySQL界面:

alter  user  'root'@'localhost'  identified  by  'password';

如果出现这样的报错:

之所以出现这样的报错,是因为mysql用户设置密码安全强度默认要求为中,即1,要求必须包含数字、符号、大小写字母,长度至少为8位

说明我们刚刚设置的密码强度太低,可以设置密码强度要求:

这样密码要求强度就下来了,不过不太建议这么设置。

ok,在经历了这些设置之后,我们就可以新增用户,并且设置简易的密码了!

③删除用户

语法:

drop  user  '用户名'@'主机名'

示例:

④修改用户密码

语法:

        🖊自己改自己密码:

        set  password = password('新的密码');

        🖊root用户修改指定用户的密码:

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

2.2数据库的权限

mysql数据库提供的权限列表:

①给用户授权

刚创建的用户没有任何权限。需要给用户授权。

语法:

grant   权限列表  on  库.对象名  to   '用户名'@'登陆位置'   [identified by '密码'];

说明:

🖊权限列表,多个权限用逗号分开

        grant  select  on  ...

        grant  select, delete, create on  .....

        grant  all  [privileges]  on  ...   --表示赋予该用户在该对象上的所有权限 

🖊 *.* :代表本系统中的所有数据库的所有对象 (表,视图,存储过程等)

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

🖊 identified by 可选。如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户。

案例:

--使用root用户

 

给用户Gyh赋予test_db 数据库下所有文件的select权限:

开启另一个终端,登上Gyh用户查看:

因为我们只授予了Gyh用户select权限对test_db这个库

 

 

如果发现赋权限后,没有生效,执行:

flush  privileges; 

②回收权限

语法:

revoke  权限列表  on  库.对象名      '用户名'@'登陆位置'; 

示例:

回收Gyh对test_db数据库的所有权限:

 

在Gyh的终端查看:

 

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

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

相关文章

ATA-8061射频功率放大器应用领域介绍

ATA-8061射频功率放大器简介 ATA-8061是一款射频功率放大器。其P1dB输出功率500W,饱和输出功率1000W。增益数控可调,一键保存设置,提供了方便简洁的操作选择,可与主流的信号发生器配套使用,实现射频信号的完美放大。宽…

[common c/c++] 使用 posix 共享内存 和 mmap 实现 inter process function call

正文: mmap 可以映射某个文件的某块内存区域,因此可以通过 mmap 和 共享内存的方式将两个不同进程内的函数的所有二进制码映射到共享内存里,以实现跨进程的函数调用。 实际上,linux 动态库的动态链接正是通过mmap 把动态库文件 …

基于ARM+FPGA+AD的多通道精密数据采集仪方案

XM 系列具备了数据采集仪应具备的“操作简单、便于携带、满足各种测量需求”等功能的产品。具有超小、超轻量的手掌大小尺寸,支持8 种测量模块,还可进行最多576 Ch的多通道测量。另外,支持省配线系统,可大幅削减配线工时。使用时不…

MySQL的基础(一)

文章目录 SQLSQL的语法特点主要包括以下几点:一、 SQL - DDL -- 数据定义语言1.1 数据库操作1.1 显示现有的数据库1.2 创建数据库1.3 删除数据库1.4 使用 1.2 数据表操作1.2.1 表查询1.2.2 表创建1.2.3 修改表 1.2.4 小结 二、SQL - DML -- 数据操作语言2.1 添加数据…

Kotlin基础——函数、变量、字符串模板、类

函数、变量、字符串模板、类 函数变量字符串模板类 函数 函数组成为 fun 函数名(参数名: 参数类型, …): 返回值{} fun max(a: Int, b: Int): Int {return if (a > b) a else b }上面称为代码块函数体,当函数体由单个表达式构成时,可简化为表达式函…

Java New对象分配内存流程

一、流程图 二、流程介绍 1、进行逃逸分析,判断是否能够分配到栈上: Y: 如果能分配到栈上,则进行分配。等方法出栈时,对象内存销毁,可有效减少GC的次数。 N:无法分配到栈上,则判断是…

阿里7年经验之谈 —— 如何实现前端项目的自动化测试?

这其实就是我们常说的“UI自动化测试”,针对这个问题,我先告知答题思路如下: 1、什么是UI自动化?有什么优势? 2、UI自动化实践中会遇到什么难题? 3、如何解决难题,将UI落实到实践中?…

Go学习第七章——数组arr,切片slice和映射map

Go数组arr,切片slice和映射map 1 数组1.1 快速入门1.2 数组的内存布局1.3 四种初始化数组的方式1.4 数组的遍历1.5 注意事项以及分析1.6 数组反转1.7 二维数组 2 切片2.1 快速入门2.2 内存解析2.3 切片的使用和遍历2.4 注意事项和细节说明2.5 string和slice关系2.6 …

基于大数据的社交平台数据爬虫舆情分析可视化系统 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据…

充气膜结构的内压设计应考虑哪几种状态?

内压是充气膜结构独有的设计参数,也是结构形成刚度维持稳定的核心因素。同时,作为一种长期荷载保持结构在外荷载作用下具有的合理刚度,调整结构形态,以免产生过大变形、膜材失效褶皱等状况。结构的内压随不同气候条件进行调整&…

【MySQL-->数据操作】

文章目录 前言一、insert1.单行插入2.多行插入3.插入更新/替换 二、select1.全列查询2.指定列插入3.列别名4. 表达式计算5.去重6.where条件查询7.排序8.limit分页显示 三、update四、delete五、插入查询结果六、聚合函数六、聚合分组1.格式2.where和having的区别 前言 一、inse…

文心一言 VS 讯飞星火 VS chatgpt (120)-- 算法导论10.3 5题

五、用go语言,设 L 是一个长度为 n 的双向链表,存储于长度为 m 的数组key、prev 和next 中。假设这些数组由维护双链自由表 F的两个过程 ALLOCATE-OBJECT 和 FREE-OBJECT 进行管理。又假设 m 个元素中,恰有 n 个元素在链表 L 上,m…

BUUCTF 乌镇峰会种图 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 乌镇互联网大会召开了,各国巨头汇聚一堂,他们的照片里隐藏着什么信息呢?(答案格式:flag{答案},只需提交答案&#xff0…

Linux NFS的整体架构与核心代码解析

前面文章我们从应用层面对NFS进行了介绍,接下来的文章我们将进入实现层面。本文首先从整体上对Linux的NFS软件架构进行介绍,然后介绍代码与实际业务逻辑介绍一下NFS的处理流程。 NFS文件系统的架构分析 NFS分布式文件系统是一个客户端-服务端架构&#…

从力扣[203]理解递归思想

本文旨在通过使用递归方法的使用来进一步了解递归思想 class Solution {public ListNode removeElements(ListNode head, int val) {if (head null) {return head;}head.next removeElements(head.next, val);return head.val val ? head.next : head;} }既然要使用递归算法…

LVS+keepalive高可用集群

keepalive简介 keepalive为LVS应用延伸的高可用服务。lvs的调度器无法做高可用。但keepalive不是为lvs专门集群服务的,也可以为其他的的代理服务器做高可用。 keepalive在lvs的高可用集群,主调度器和备调度器(可以有多个) 一主两备或一主一备。 VRRP: k…

【全国数据】全国各省点状地名(村)矢量数据下载

文章目录 全国数据预览分省数据预览 全国数据预览 分省数据预览 青海省: 甘肃省: 安徽省: 湖南省:

freeCAD不合并导入step文件

1.问题描述 在使用freeCAD导入step文件的时候,一开始会导入成一个成体,想隐藏某些部件,却只能隐藏整个装配体,就是图示位置无法展开。 2.解决方法 找到首选项把第5步里面的不打钩就可以了。 3.freeCAD的用处 这个主要的用处还是用…

NOIP2023模拟1联测22 爆炸

NOIP2023模拟1联测22 爆炸 题目大意 ​ 自己看 思路 当一个炸弹被引爆后,它的方向是固定的。如果被竖着引爆,那么应该选择横着引爆,否则选择竖着引爆,这是显然 的。 考虑对于每个炸弹 ( i , j ) (i , j) (i,j) 将第 i i i 行…

前端视角看 Docker : 加速开发和部署的利器

Docker 是一个开源的容器化平台,大大的降低了运维相关的工作。在日常开发中,中小公司很少有专职运维,所以在开发中通过使用 Docker,前端相关工作可以更加高效地构建、打包、部署和运行应用程序。此系列将从前端的视角出发&#xf…