MySQL视图、用户管理

目录

视图概念和操作

视图基本操作

视图规则和限制 

用户管理

用户


视图概念和操作

什么是视图?

        视图是一个虚拟表,由一个或多个基本表的查询结果组成(视图是存储在数据库中的查询的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用户回收权限

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值