asp网站怎么做301定向,软件开发流程八个步骤,做搜狗网站优化首页,网页ui设计图目录 视图创建视图数据修改影响删除视图视图优点 用户和权限管理查看当前的数据库拥有用户信息创建用户修改密码删除用户权限授权回收权限 视图
视图就是相当于创建一个表#xff0c;将查询到的结果集给存储起来。像使用复杂的多表查询查询到的结果集就不可以对结果集操作。而… 目录 视图创建视图数据修改影响删除视图视图优点 用户和权限管理查看当前的数据库拥有用户信息创建用户修改密码删除用户权限授权回收权限 视图
视图就是相当于创建一个表将查询到的结果集给存储起来。像使用复杂的多表查询查询到的结果集就不可以对结果集操作。而使用视图就可以。 视图是⼀个虚拟的表它是基于⼀个或多个基本表或其他视图的查询结果集。 视图本⾝不存储数据⽽是通过执⾏查询来动态⽣成数据。 ⽤⼾可以像操作普通表⼀样使⽤视图进⾏查询、更新和管理。 视图本⾝并不占⽤物理存储空间它仅仅是⼀个查询的逻辑表⽰物理上它依赖于基础表中的数据。 使用查询语句查询查询真实数据时可以拿到敏感信息但是如果将视图传给其他人来查询就可以避免。
创建视图
create view 视图名 (视图列名可省略) as (查询结果);创建视图时如果将列名省略那么是由查询结果的列名作为视图列名但是如果查询结果中列名有重复就会创建失败需要采取给其起别名来解决。 数据修改影响
对视图的操作就跟表操作一样。
修改真实表的数据会影响视图。修改视图也会影响真实表。
视图修改的条件
创建视图时不能使⽤聚合函数。创建视图时不能使⽤distinct。创建视图时不能使⽤group by和having子句。创建视图时不能使⽤union和union all联合查询语句。查询列表中不能使⽤⼦查询。在from⼦句中引⽤不可更新视图。
删除视图
drop view 视图名;视图优点
简单性视图可以将复杂的查询封装成⼀个简单的查询。例如针对⼀个复杂的多表连接查询可以创建⼀个视图⽤⼾只需查询视图⽽⽆需了解底层的复杂逻辑。安全性通过视图可以隐藏表中的敏感数据。例如⼀个系统的⽤⼾表中可以创建⼀个不包含密码列视图普通⽤⼾只能访问这个视图⽽不能访问原始表。逻辑数据独立性视图提供了⼀种逻辑数据独⽴性即使底层表结构发⽣变化只需修改视图定义⽽⽆需修改依赖视图的应⽤程序。使⽤到应⽤程序与数据库的解耦可读性视图允许⽤⼾重命名列名以增强数据可读性。
用户和权限管理
在我们练习中都是使用root用户root用户权限很大且一个数据库只有一个在实际应用中用户权限大小至关重要而且还要有多个用户。
查看当前的数据库拥有用户信息
用户信息存储在系统库mysql中的user表里面。mysql库是系统库我们不要对其修改。
语法
use mysql;
select host, user, authentication_string from user;名词解释
host允许登录的主机相当于⽩名单如果是localhost表⽰只能从本机登陆。user⽤⼾名。*_priv⽤⼾拥有的权限*表示多个单词相当于通配符。authentication_string 加密后的⽤⼾密码
创建用户
语法
create user [IF NOT EXISTS] 用户名区分⼤⼩写主机名 identified by 密码;这样创建的用户没有任何权限。
注意事项
如果不指定host_name相当于’user_name’‘%’%表⽰所有主机都可以连接到数据库强烈建 议不要这样设置因为会导致严重的安全问题。用户名和主机名中间的没包含在单引号’只内。host_name可以通过⼦⽹掩码设置主机范围 ◦ 198.0.0.0/255.0.0.0 :A段⽹络中的任意⼀台主机 ◦ 198.51.0.0/255.255.0.0: 198.51 B段⽹络中的任意⼀台主机 ◦ 198.51.100.0/255.255.255.0: 198.51.100 C段⽹络中的任意⼀台主机 ◦ 198.51.100.1 :只包含特定IP地址的主机。从MySQL8.0.23开始指定为IPv4地址的主机值可以使⽤CIDR表⽰法写⼊例如198.51.100.44/24。允许在IP地址中使⽤%通配符⽐如主机值’%匹配任何主机名 198.51.100.% 匹配 198.51.100 C段⽹络中的任何主机。MySQL8.0.35中已弃⽤以后可能会删除。
示例 添加⼀个名为ikun的新⽤⼾允许从本机登录 create user bitlocalhost identified by 123456;修改密码
语法
# 为指定⽤⼾设置密码
alter user 用户名区分大小写主机名 identified by 新密码;
# 为指定⽤⼾设置密码
set password for 用户名区分大小写主机名 新密码;
# 为当前登录⽤⼾设置密码
set password 新密码;示例
以root⾝份登录为’ikun’localhost’⽤⼾重置密码 ALTER USER bitlocalhost IDENTIFIED BY 987654;以root⾝份登录为’ikun’localhost’⽤⼾重置密码
SET PASSWORD FOR bitlocalhost 123456;以ikun⽤⼾登录修改当前登录⽤⼾的密码 SET PASSWORD 111111;删除用户
语法
drop user [if exists] 用户名区分大小写主机名;示例 删除用户’ikun’‘192.168.1.1/24’
drop user ikun192.168.1.1/24;权限
MySQL内置⽀持的权限列表如下
授权
语法
grant priv_type[, priv_type ...] on priv_level touser_namehost_name [WITH GRANT OPTION];名词解释
priv_type根据类型参考根据列表4.1中的Privilege列。priv_level* | . | db_name.* | db_name.tbl_name | tbl_name⽐如*.*表⽰所有数据库下的所 有表。‘user_name’‘host_name’指定⽤⼾。[WITH GRANT OPTION]可选允许⽤⼾将⾃⼰的权限授权给其它⽤⼾。
示例 为ikunlocalhost⽤⼾授权于 java01 数据库的 select 权限。
grant select on java01.* to ikunlocalhost;回收权限
语法
REVOKE [IF EXISTS] priv_type[, priv_type] ... ON priv_level FROM user_namehost_name [, user_namehost_name] ...示例 回收ikunlocalhost⽤⼾对于 java01 数据库的权限:
REVOKE all on *.* from ikunlocalhost;