精华内容
下载资源
问答
  • mysql创建视图,并创建用户,赋予只读权限
    千次阅读
    2022-04-24 09:57:12

    CREATE VIEW 视图名称 AS SELECT * FROM t_data_police_info

        create  user  '用户名'@'%'  identified  by '密码'
                grant  select(权限)  on  库.表  to  '用户名'@'%';

    更多相关内容
  • MySQL 视图

    2021-01-19 05:18:51
    grant授权用户只操作视图只读,可以保护基本表中的数据。提高查询性能。视图只是基本表的一部分,查视图比查全表快。尤其是多表查询的时候,查视图一张表比连接多张表查询要快。视图的常用操作#创建视图create ...

    视图的概念

    视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。

    视图的作用

    安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。

    提高查询性能。视图只是基本表的一部分,查视图比查全表快。尤其是多表查询的时候,查视图一张表比连接多张表查询要快。

    视图的常用操作

    #创建视图create view view_computer_dep as (select * from tb_student where dep_id=1); #把计算机系的学生信息保存为视图

    #以后要查询计算机系的学生信息直接从视图中查,肯定比从tb_student全表里查要快。把多表查询的结果集保存为视图一张虚表,查询性能提升更加明显。

    #从视图中查数据

    select * from view_computer_dep;

    #修改视图

    create or replace view view_computer_dep as (select id,name from tb_student where dep_id=1); #视图名要相同。会使用新的结果集替换原来的结果集。

    #必须要有create or,不能直接replace,语法不允许。

    #如果视图不存在,会自动创建

    #删除视图

    drop view view_computer_dep;

    创建视图的完整语法

    create [algorithm=merge|temptable|undefined] view view_computer_dep as (select * from tb_student where dep_id=1) [with check option] ;

    主要注意一下2个可选参数。

    algorithm指定视图的执行机制,有3个可选的值:

    (1)merge  合并

    合并有2层含义,一是sql语句合并,比如说select * from view_computer_dep 操作视图,执行时会用视图定义替换视图名,实际执行的是select * from  (select * from tb_student where dep_id=1);二是操作合并,对视图中的记录可以进行增改删查(实际是对基本表进行增改删查),所以对视图中记录的增改删会同步到基本表。

    此种方式不会创建临时表,每次都是操作基本表,并不会提高查询性能。

    (2)temptable  临时表

    (select * from tb_student where dep_id=1)  as  view_computer_dep;

    select * from view_computer_dep;

    把对基本表的查询结果保存为临时表,每次操作的都是临时表。

    此种方式可以提高查询性能,但只能对视图进行查询操作,不能进行增改删。

    (3)undefined 未定义

    缺省此参数时默认就是undefined,由数据库决定是使用merge还是使用temptable,mysql是使用merge。

    如果使用merge,还可以设置一个可选参数:with check option  是否检查条件。

    创建视图时设置了条件where dep_id=1(过滤基本表),即视图中的记录都是dep_id=1的。

    如果设置了with check option,那往视图中插入记录时记录的dep_id必须是1,必须要满足设置的条件,update更新视图中的记录时,dep_id=1这一个字段也不能改。要保证视图中的记录都满足条件。

    不可更新的视图

    就算使用merge,也不是所有视图中的记录都可以增删改的。

    create view view_computer_dep as (select * from tb_student where dep_id=1)

    as指定视图的数据来源,如果里面使用了以下任何一种,创建的视图都是不可更新的:

    聚合函数

    group by子句

    having子句

    distinct关键字

    union运算符

    from来源于多个表或者来源于不可更新的视图

    一句话,不是直接来源于一个基本表的,对视图中的记录都只能进行查询操作,不能进行增改删。

    比如使用了sum():create view view_computer_dep as (select sum(salary) from tb_employees );

    你要update更新视图中的sum这个字段,怎么同步到基本表?同步不了。

    展开全文
  • 可以间接方式创建只读视图:创建对所有表具有SELECT权限的用户和CREATE VIEW权限然后使用此用户创建视图并在CREATE VIEW语句中指定SQL SECURITY DEFINER:CREATEDEFINER = CURRENT_USERSQL SECURITY DEFINERVIEW Emp...

    MySQL不支持WITH READ ONLY for CREATE VIEW.

    可以间接方式创建只读视图:创建对所有表具有SELECT权限的用户和CREATE VIEW权限然后使用此用户创建视图并在CREATE VIEW语句中指定SQL SECURITY DEFINER:

    CREATE

    DEFINER = CURRENT_USER

    SQL SECURITY DEFINER

    VIEW Emp_Salary3 AS

    SELECT Empid, Ename, Date_Joined, Salary, Dcode

    FROM Employees

    WHERE Salary < 35000

    如果您使用受限用户创建视图,则不需要DEFINER = CURRENT_USER行.

    或者您可以使用管理员用户创建视图,在这种情况下,行DEFINER =必须包含将拥有该视图的用户的名称.

    文档说明:

    MySQL checks view privileges like this:

    At view definition time, the view creator must have the privileges needed to use the top-level objects accessed by the view. For example, if the view definition refers to table columns, the creator must have some privilege for each column in the select list of the definition, and the SELECT privilege for each column used elsewhere in the definition. If the definition refers to a stored function, only the privileges needed to invoke the function can be checked. The privileges required at function invocation time can be checked only as it executes: For different invocations, different execution paths within the function might be taken.

    The user who references a view must have appropriate privileges to access it (SELECT to select from it, INSERT to insert into it, and so forth.)

    When a view has been referenced, privileges for objects accessed by the view are checked against the privileges held by the view DEFINER account or invoker, depending on whether the SQL SECURITY characteristic is DEFINER or INVOKER, respectively.

    这意味着视图的用户必须至少具有该视图的SELECT权限.然后,如果SQL SECURITY是DEFINER,那么DEFINER用户的权限将应用于视图定义中使用的表和视图.

    展开全文
  • 在OpenERP V7视图(ir.ui.view)多了一个非常有用的字段(groups_id)'groups_id': fields.many2many('res.groups', 'ir_ui_view_group_rel','view_id', 'group_id', string='Groups',help="If this field is empty, the...

    在OpenERP V7视图(ir.ui.view)多了一个非常有用的字段(groups_id)

    'groups_id': fields.many2many('res.groups', 'ir_ui_view_group_rel',

    'view_id', 'group_id', string='Groups',

    help="If this field is empty, the view applies to all users.

    Otherwise, the view applies to the users of those groups only."),

    以前的视图

    在OpenERP 7.0之前我们访问的视图一般是这样组成的:

    1.会根据你的菜单动作所绑定的view_id来直接找到所要呈现的视图,如果没指定或者没找到就会选取你将要访问的model的优先级最高的视图。

    2.找到基础的视图后,系统会找出所有继承这个视图的视图,把他们按照优先级叠加在一起。

    3.最后视图渲染呈现到浏览器。

    也就是说在旧版本里面不同用户看到同一个界面都是同一组视图叠加形成的。

    现在的视图

    在添加了这个groups_id字段后,视图的叠加方式将要改变。相信各位看到这里也差不多能明白了。对的!现在不同用户登陆,叠加的视图会根据你当前用户组来选择。不同用户看到的视图可以完全不一样。情况如下图:

    5060eeedb56eeffebc0dea27370d66a1.png

    详细代码可以看。

    #addons/base/ir/ir_ui_view.py

    def get_inheriting_views_arch(self, cr, uid, view_id, model, context=None):

    .....

    # filter views based on user groups

    return [(view.arch, view.id)

    for view in self.browse(cr, 1, view_ids, context)

    if not (view.groups_id and user_groups.isdisjoint(view.groups_id))]

    有什么用?

    1.某些字段对于某些权限组的人是可写入,但是其他权限组的人是只读。

    例如我新建一个视图view1继承产品视图view修改成本价为只读,view2修改成本价可写,groups_id 是采购经理,那么没有采购经理权限的人打开视图看到的是成本价只读(view+view1),采购经理看到的是可写的 (view+view1+view2)。

    2.具有某些权限组的人看到的视图更丰富。(例如:OpenERP里面销售订单行editable的设置就是通过groups_id来实现)

    怎么用?

    sale.order.form.editable.list

    sale.order

    这里就是上面说的2里面的实现方式,这里为视图view_order_form_editable_list定义了groups_id,我们来一起分析下。

    eval:把eval的值通过作为python运算后返回到该属性,这里就是eval后的值会返回给groups_id。

    ref:OpenERP视图的方法。根据module_name.xml-id返回数据库id。

    再想

    这样定义对于不同的用户组呈现不同组合的视图这种需求是非常有用。但是它并不是完整的权限配置,因为这里的权限设置都是对于视图上的,用户还可以通过别的方式来直接或者间接得到数据(例如:导入、导出,XML-RPC…)。所以要完善的权限配置我们还必须配合各种权限规则来组合使用:

    展开全文
  • 通用mysql只读查询

    2021-01-30 06:32:13
    "云数据库RDS MySQL版","des":"云数据库RDS MySQLMySQL 是全球最受欢迎的开源数据库,阿里云MySQL版 通过深度的内核优化和独享实例提供稳定极致的数据库性能,同时灵活的部署架构及产品形态,可满足不同场景下的...
  • mysql视图

    2021-02-01 17:31:57
    #概念数据库视图是虚拟表或逻辑表;因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据;允许通过先决条件的数据库视图来更新基础表中的数据;...创建只读视图用户只能看...
  • 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图...
  • Mysql中的视图

    2021-02-05 05:48:44
    1、什么是视图通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。视图是一种虚拟存在的表或逻辑表,视图并不在数据库中实际存在,行和列数据...
  • 当存储过程、函数、触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的?在默认情况下,MySQL将检查创建者的...
  • 1:创建视图 createview realdata_view as select id_device as deviceId, function_name as pointEhName, function_memo as pointChName, date_time as dateTime, pv as value from service_values_curre.....
  • 创建用户create user 用户名@主机名 identified by '密码’说明:1)Create user 关键字2)用户名 //登录数据库服务器的名称 mysql –h主机名 –u用户名 –p密码3)主机名 //可以是域名或IP地址或 ‘%’, 代表任意主机名...
  • 在本教程中,您将了解一个叫作数据库视图的新数据库... 大多数数据库管理系统(包括MySQL)允许您通过具有一些先决条件的数据库视图来更新基础表中的数据。数据库视图是动态的,因为它与物理模式无关。数据库系统将...
  • MySQL只读实例简介

    2020-10-15 09:12:02
    MySQL只读实例简介 更新时间:2020-07-20 10:55:37 编辑我的收藏 本页目录 简介 前提条件 只读实例、备实例和灾备实例三者之间的区别 计费 功能特点 功能限制 创建只读实例 常见问题 在对数据库有少量写...
  • 1.事件背景今天临近中午饭点时,开发同事发来需求,在mariadb库创建两个视图,要求指定帐号有只读权限。很简单的需求,连上服务器,两条grant命令一刷,fulsh privileges 回车,楼主就安心吃饭去了。2.重点来了,待...
  • 浅谈mysql视图优缺点

    2020-12-07 14:25:28
    大多数数据库管理系统(包括MySQL)允许您通过具有一些先决条件的数据库视图来更新基础表中的数据。数据库视图是动态的,因为它与物理模式无关。数据库系统将数据库视图存储为具有连接的SQL SELECT语句。当表的数据...
  • MySQL 视图、索引、外键关联策略

    千次阅读 2020-05-30 11:29:12
    目录视图索引外键关联策略   视图 视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。   视图的作用 提高安全性。grant授权用户只能操作视图,通过视图来操作基本表,可以...
  • OracleDB视图_MySQL

    2021-05-07 11:31:28
    bitsCN.comOracle DB视图什么是视图通过创建表的视图可以显示数据的逻辑子集或组合。视图是一种基于表或其它视图的逻辑表。视图没有自己的数据,但它如同一个窗口,通过它可以查看或更改表中的数据。视图所基于的表...
  • mysql-视图

    2020-08-12 12:43:11
    MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。 视图的应用场 多个地方用到同样的查询结果 ...
  • mysql 从设置只读

    2021-01-27 23:42:15
    only该选项限制普通用户只有select权限--read_only Make all non-temporary tables read-only, with theexception for replication (slave) threads and users withthe SUPER privileg使所有的非temporary表为只读,...
  • Mysql实例解析SQL Server 视图、数据库快照》要点:本文介绍了Mysql实例解析SQL Server 视图、数据库快照,希望对您有用。如果有疑问,可以联系我们。简介数据库快照MYSQL必读数据库快照,正如其名称所示那样,是...
  • Mysql 创建只读账户

    2019-09-26 07:18:19
    mysql 创建只读账户; 1、查询所有账号信息 SELECT DISTINCT a.`User`,a.`Host`,a.password_expired,a.password_last_changed,a.password_lifetime,a.* FROM mysql.user a; 示例: 1、创建账户 并授权...
  • 设置mysql数据库为只读

    千次阅读 2021-01-18 19:02:51
    #1是只读,0是读写mysql> show global variables like "%read_only%";以下是相关说明:1、对于数据库读写状态,主要靠 “read_only”全局参数来设定;2、默认情况下,数据库是用于读写操作的,所以read_only参数...
  • 创建只读视图 以下脚本用于在同一数据库中创建任何现有模式的只读模式。 只读模式仅被授予对现有模式的表和视图的读取权限。 没有其他任何对象的特权。 脚本可以根据要求进行定制。 CREATEORREPLACEPROCEDURECREATE...
  • MySQL用户授权

    千次阅读 2021-01-19 11:18:35
    创建新的用户mysql> create user 'yhq'@'127.0.0.1';Query OK,0 rows affected (0.00sec)mysql> show grants for 'yhq'@'127.0.0.1';+-----------------------------------------+| Grants for yhq@127.0.0.1 ...
  • mysql 创建只读账号

    千次阅读 2019-06-27 15:46:33
    GRANT Select ON *.* TO reader@192.168...在mysql 5.6下似乎要重启mysql才生效 创建了一个账户名为“reader" , 密码”123456“ 只可以从192.168.1.123发起访问 读取数据库的账号 reader@"%" 则表示所有的ip都可以...
  • mysql 视图开启授权

    千次阅读 2019-05-05 14:33:23
    mysql 视图相关操作 操作指令 代码 创建视图 CREATE VIEW 视图名(列1,列2…) AS SELECT (列1,列2…) FROM …; 使用视图 和普通表一样操作 修改视图 CREATE OR REPLACE VIEW 视图名 AS SELECT […] ...
  • 关于mysql视图的权限问题

    千次阅读 2017-06-17 10:49:00
    经过很久的排查,才发现是权限问题(排查了很久才发现,证明mysql基础不牢)。原因是我这个项目在生产过程中,沿用了老项目的数据库,为了不重新创建表和维护两个表,所以创建了视图来解决这个问题。但是:恰好视图...
  • 新建视图 1,点击视图----》新建视图--》在定义里面放入select 的SQL 在SQL预览里面可以查看创建视图的·SQL 2.点击 ‘保存’ 按钮 ,输入视图名称 二 新建用户添加权限 1, grant select on 数据库名.表名或者...
  • mysql视图之优缺点了解下

    万次阅读 2018-07-12 10:02:41
    大多数数据库管理系统(包括MySQL)允许您通过具有一些先决条件的数据库视图来更新基础表中的数据。又因为它与物理模式无关,所以数据库视图是动态的,当表的数据发生变化时,视图也反映了这些数据的变化。咱们来看下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,909
精华内容 5,963
关键字:

mysql 只读视图

mysql 订阅
友情链接: ns-link.rar