MySQL视图、用户管理

news2025/1/20 22:37:12

目录

视图概念和操作

视图基本操作

视图规则和限制 

用户管理

用户


视图概念和操作

什么是视图?

        视图是一个虚拟表,由一个或多个基本表的查询结果组成(视图是存储在数据库中的查询的SQL 语句,不在数据库中以存储的数据值集形式存在)。视图是基于存储在数据库中的数据的可视化表示,它可以像表一样被查询和操作。视图的数据变化会影响到基表,基表的数据变化也会影响视图。视图可以简化复杂查询提供更方便的数据访问方式,并且可以保护基础数据的安全性

        需要注意的是,对视图的修改操作实际上是对基础表的修改操作。因此,当对视图进行插入、更新或删除操作时,实际上是对基础表进行相应的操作。视图只是提供了一种方便和灵活的方式来访问和操作基础表的数据。

视图基本操作

创建视图

create view 视图名 as select 语句;

 实例:有一张部门表和一张员工表,创建一个视图,包含员工名和其部门名

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

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

 删除视图

drop view 视图名; 

示例: 

视图规则和限制 

1.与表名一样,必须唯一命名。

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

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

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

一般这样做:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定。这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限给不同的用户使用。

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

6.视图可以表一起使用。

用户管理

倘若只能使用root用户访问数据库,那么就会数据库就会存在安全隐患,这时就需要使用MySQL的用户管理。

用户

用户信息:MySQL的用户信息都存储在系统数据库mysql的user表中。

查看user表:

字段解释:

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

user:用户名

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

*_priv:表示用户是否拥有该权限,如下:

创建用户 

语法:

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

创建时,登陆地址使用%表示任意登陆地址,删除时也同理。

示例:

创建一个用户名为ys的用户:

使用ys用户登录:

修改用户密码

普通用户可以通过调用password函数修改自己的密码,超级用户可以通过调用password函数修改任意用户的密码。 

删除用户

删除用户的SQL如下:

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

给用户授权

SQL:

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

说明: 

权限列表:表示要授予用户何种权限,多个权限

库名.对象名:表示要授予用户哪个数据库下的哪个对象的权限。

'用户名'@'登录地址':表示给哪一个用户授权。

IDENTIFIED BY '密码':可选,如果用户存在,则在授予权限的同时修改改用户的密码,如果用户不存在,则创建该用户。

结合视图,要给用户授权访问某个视图,可以使用下面GRANT语句:

GRANT SELECT ON database_name.view_name TO 'username'@'localhost';

 查看用户现有权限

在root用户下授权:

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

回收权限

 回收权限的SQL如下:

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

 语法和授予权限类似。

例如:root用户回收权限

普通用户失去访问权限了:

 

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

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

相关文章

VC6 MFC Dialog as apllication 编程

MFC框架虽然古老,但编程还是方便多了,在操控界面控件的基础上,平时在Console模式习练的类可以融入到MFC中,开发应用程序还是比较方便的。下图是习练程序的界面。 说明: 一个EDIT框,一个Label框&#xff1b…

Linux进程相关管理(ps、top、kill)

目录 一、概念 二、查看进程 1、ps命令查看进程 1)ps显示某个时间点的程序运行情况 2)查看指定的进程信息 2、top命令查看进程 1)信息统计区: 2)进程信息区 3)交互式命令 三、信号控制进程 四、…

假期AI新闻热点:亚运会Al技术亮点;微软GPT-4V论文精读;Perplexity推出pplx-api;DALL-E 3多渠道测评 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 科技感拉满,第19届杭州亚运会中的Al技术亮点 八年筹备,杭州第19届亚运会开幕式于9月23日晚隆重举行&#xff0…

口袋参谋:如何有效地监测你的竞争对手!

​在淘宝天猫上开店,竞争是非常大的,那么就会出现许多同样的产品,如果想要在竞争中胜出,就需要多去研究同行的数据,知己知彼,百战百胜。 掌握竞争对手数据目的主要是有2个: 1、掌握对手是怎么起…

【二叉树】的实现

📙作者简介: 清水加冰,目前大二在读,正在学习C/C、Python、操作系统、数据库等。 📘相关专栏:C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…

竞赛选题 深度学习 python opencv 动物识别与检测

文章目录 0 前言1 深度学习实现动物识别与检测2 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 3 YOLOV53.1 网络架构图3.2 输入端3.3 基准网络3.4 Neck网络3.5 Head输出层 4 数据集准备4.1 数据标注简介4.2 数据保存…

中断:ZYNQ

整个中断系统架构中,只包含以下三种中断:  软件生成中断(Software Generated Interrupts,SGI)  私有外设中断(Private Peripheral Interrupts,PPI)  共享外设中断(Shared Peripheral Interrupts,SPI) 每种中断…

华为云云耀云服务器L实例评测|云耀云服务器L实例部署DjangoBlog个人博客系统

华为云云耀云服务器L实例评测|云耀云服务器L实例部署DjangoBlog个人博客系统 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、DjangoBlog介绍2.1 DjangoBlog介绍2.2 DjangoBlog特点 三、本次实践介绍3.1 本次实践简介3.2 本次环…

java socket实现代理Android App

实现逻辑就是转发请求和响应。 核心代码 // 启动代理服务器private void startProxyServer() {new Thread(new ProxyServer()).start();}// 代理服务器static class ProxyServer implements Runnable {Overridepublic void run() {try {// 监听指定的端口int port 8098; //一…

AutoGen - 多个Agent开发LLM应用的框架

文章目录 关于安装使用关于 Enable Next-Gen Large Language Model Applications 用多个Agent开发LLM应用的框架,这些agent可相互交流以解决任务。 官网:https://microsoft.github.io/autogen/github : http://github.com/microsoft/autogendiscord : https://discord.com/i…

LVGL_基础控件滚轮roller

LVGL_基础控件滚轮roller 1、创建滚轮roller控件 /* 创建一个 lv_roller 部件(对象) */ lv_obj_t * roller lv_roller_create(lv_scr_act()); // 创建一个 lv_roller 部件(对象),他的父对象是活动屏幕对象// 将部件(对象)添加到组,如果设置了默认组&#xff0c…

buuctf-crypto 1

rsarsa 题目描述 Math is cool! Use the RSA algorithm to decode the secret message, c, p, q, and e are parameters for the RSA algorithm.p 96484230290105156765905517400104265349457376392357398006439893520398525072984913995610350091634270503701075707336333…

Java循环队列

目录 一、循环队列 二、设计循环队列 一、循环队列 队列:只能在一端进行插入数据操作,另一端进行删除数据操作的特殊线性表,是一种先进先出的存储结构 插入操作的一端为队尾,删除操作的一端为队头 在线性队列中,一…

leetcode 62. 不同路径、63.不同路径||

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…

课题学习(三)----倾角和方位角的动态测量方法(基于陀螺仪的测量系统)

一、内容介绍 该测量系统基于三轴加速度和三轴陀螺仪,安装在钻柱内部,随钻柱一起旋转,形成捷联惯性导航系统,安装如下图所示:   假设三轴加速度和陀螺仪的输出为: f b [ f x f y f z ] T f^b\begin{bmatrix}f_{x} …

C++ 学习系列 -- std::list

一 std::list 介绍 list 是 c 中的序列式容器,其实现是双向链表,每个元素都有两个指针,分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构,与数组连续内存空间不一样的地方在于,链表的空间是不…

Springboot实现登录功能(token、redis、登录拦截器、全局异常处理)

登录流程: 1、前端调用登录接口,往接口里传入账号,密码 2、根据账号判断是否有这个用户,如果有则继续判断密码是否正确 3、验证成功后,则是根据账号,登录时间生成token(用JWT) 4、将…

64位Office API声明语句第111讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高…

企业使用SSL证书对于SEO有多重要

在当今竞争激烈的在线市场中,搜索引擎优化(SEO)是企业获得更高排名和增加网站流量的关键。在SEO策略中,企业使用SSL证书已经成为多重不可忽视的重要因素。让我们一起探究企业使用SSL证书对于SEO的重要性。 首先,搜索引…

socket.error: [Errno 10049]错误

今天在pycharm运行rl_server_no_training.py欲启动服务器时&#xff0c;却出现如下错误 Traceback (most recent call last):File "xxx/rl_server_no_training.py", line 333, in <module>main()File "xxx/rl_server_no_training.py", line 326, in…