MySQL视图、用户管理

目录

一、视图

二、用户管理

2.1、用户

1、用户信息

2、创建用户

3、删除用户

4、修改用户密码

2.2、数据库的权限


一、视图

视图就是由基表导出的一张表 和普通的表一样

修改视图也会影响到基表 同样地 修改基表也会影响到视图

创建视图:create view 视图名 as select语句;

示例:

修改视图 基表记录也会发生相应改变:

修改基表 视图也会发生相应变化:

删除视图 :drop view 视图名;

视图的规则和限制:

  • 必须唯一命名
  • 创建视图没有数量限制 但是要考虑之后复杂查询的性能影响
  • 视图不能添加索引 也不能有关联的触发器和默认值
  • 视图可以提高安全性 必须要有足够的访问权限
  • order by可以用在视图中 但是若是在视图中的select中也含有order by 那么该视图中的order by会被覆盖

二、用户管理

若是只是用root用户 会出现安全问题 所以具备需要创建普通用户的功能 因为root用户无视权限 而可以给创建的普通用户限制权限 从而保证安全性

2.1、用户

1、用户信息

mysql中的用户信息都存放在MySQL系统数据库的user表中 可以查看一下

host表示可以从那个主机登录 若是localhost表示只能本机登录 若是%表示任何主机都能登录

user表示用户名称

authentication_string表示用户加密之后的密码

2、创建用户

create user ' 用户名 ' @ ' 登陆主机 /ip' identified by ' 密码 ' ; 若是@后面接上'%'则表示从任何主机都能登上这个用户的mysql 一般来说为了安全是不会这样设置的
例子:
创建一个只允许本地登录的用户并且设置密码为123456 之后查看user表中的host user 以及加密之后的密码记录 然后新开一个终端 以zhangsan登录mysql
create user 'zhangsan'@'localhost' identified by '123456';


新建终端并且输入密码登录zhangsan用户下的mysql

3、删除用户

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

4、修改用户密码

自己该自己的密码:ALTER USER USER() IDENTIFIED BY '新密码';或者SET PASSWORD = '...密码';

root下修改某个用户的密码:ALTER USER '用户名'@'主机名' IDENTIFIED BY '密码';

zhangsan登陆下的mysql

root下的mysql 发现密码改变

2.2、数据库的权限

刚刚创建的用户没有任何权限 需要我们手动授予权限

在root权限下创建一个数据库user并且在里面创建一个表id_name 会发现在zhangsan下的mysql看不这个数据库这是因为权限不够

授予权限语法以及注意点
grant 权限列表 on 库 . 对象名 to ' 用户名 ' @ ' 登陆位置 ' [identified by ' 密码 ' ] 表示将库下表的某些全选授予用户 在这里可以设置密码 一般在创建用户的时候就设置好
每次授予权限之后要 flush privileges 让授予的权限立即生效
可以一次性授予全部权限 也可以授予部分权限
grant select on ...
grant select , delete , create on ....
grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
查看用户的权限 :show grants for '用户名'@'主机名'

例:

给zhangsan授予user库下id_name 的全部权限

root下

查看zhangsan的权限 发现全部都有

zhangsan

插入或者删除记录试试

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

在root下回收zhangsan的修改权限并且查看zhangsan的剩余权限 之后在zhangsan下尝试修改记录 发现不可行

相关推荐
Ricky_Theseus3 分钟前
SQL Server 的五种约束类型
数据库·sql·oracle
zjshuster5 分钟前
数据库分库分表的方法论与实操
数据库·adb
yige455 分钟前
【MySQL】MySQL内置函数--日期函数字符串函数数学函数其他相关函数
android·mysql·adb
一只努力的微服务11 分钟前
【Calcite 系列】深入理解 Calcite 的 AggregateValuesRule
大数据·数据库·calcite·优化规则
IT邦德24 分钟前
Oracle向量数据库实战
数据库·oracle
2401_8735449237 分钟前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
路由侠内网穿透39 分钟前
本地部署开源工作空间工具 AFFiNE 并实现外部访问
运维·服务器·数据库·物联网·开源
njidf42 分钟前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
F1FJJ1 小时前
什么是 Shield CLI?视频讲解:一条命令,可浏览器远程访问一切内部服务(RDP/VNC/SSH/数据库等)
运维·网络·数据库·网络协议·ssh
星辰_mya1 小时前
InnoDB的“身体结构”:页、Buffer Pool与Redo Log的底层奥秘
数据库·mysql·spring·面试·系统架构