标签 视图 下的文章

MySQL查询所有视图并给用户授予指定视图权限

视图其实就是一张虚拟的表,所有也可以认为是一张表,MySQL查询所有视图:

show table status where comment='view'\G;

查询视图结构:

 DESC master_data_user;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| username  | varchar(255) | YES  |     | NULL    |       |
| org_id    | varchar(255) | YES  |     | NULL    |       |
| status    | varchar(255) | YES  |     | NULL    |       |
| name      | varchar(255) | YES  |     | NULL    |       |
| org_name  | varchar(255) | YES  |     | NULL    |       |
| email     | varchar(255) | YES  |     | NULL    |       |
| telephone | varchar(255) | YES  |     | NULL    |       |
| post      | varchar(255) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

或者

SHOW TABLE STATUS LIKE 'master_data_user'\G;
*************************** 1. row ***************************
           Name: master_data_user
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW
1 row in set (0.00 sec)

创建data_view用户并授予单个视图权限:

grant select,show view on escdb.master_data_org to data_view@'192.168.%' IDENTIFIED BY 'xxxxxxx';
grant select,show view on escdb.master_data_user to data_view@'192.168.%' ;
flush privileges;

data_view登录后即只能查看master_data_org和master_data_user视图;
查看当前登录用户权限:

 show grants;
+----------------------------------------------------------------------------------+
| Grants for data_view@192.168.%                                                   |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'data_view'@'192.168.%'                                    |
| GRANT SELECT, SHOW VIEW ON `escdb`.`master_data_org` TO 'data_view'@'192.168.%'  |
| GRANT SELECT, SHOW VIEW ON `escdb`.`master_data_user` TO 'data_view'@'192.168.%' |
+----------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

MySQL视图查看及权限说明

查看视图是指查看数据库中,已经存在的视图的定义 必须要有SHOW VIEW的权限
查看视图有三种方式:
DESCRIBE语句
使用DESCRIBE语句,查看视图
MySQL中,使用DESCRIBE可以查看视图的字段信息,其中,包括字段名、字段类型等信息
语法格式:

DESCRIBE 视图名; 
或者
DESC 视图名;
root@sso_db_69 17:58:  [escdb]> desc oa_org;
+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | varchar(36)  | NO   |     | NULL    |       |
| name        | varchar(255) | NO   |     | NULL    |       |
| fullName    | varchar(255) | YES  |     | NULL    |       |
| resource_id | varchar(255) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)





---阅读剩余部分---

AWR报告的生成和分析

自动工作负载库(Automatic Workload Repository,AWR)自动工作负载库报告是我们进行日常数据库性能评定、问题SQL发现的重要手段。
AWR的由来:

10g之前的oracle:用户的连接将产生会话,当前会话记录保存在v$session中;处于等待状态的会话会被复制一份放在v$session_wait中。当该连接

断开后,其原来的连接信息在v$session和v$session_wait中就会被删除;oracle10g及之后保留下了v$session_wait中的这些信息,并多了
v$active_session_history(ASH)视图,记录每个活动session在v$session_wait中最近10次的等待事件。



---阅读剩余部分---

Oracle查询所有序列/触发器、存储过程、视图、表

方法一:
Select object_name From user_objects Where object_type='TRIGGER'; --所有触发器

Select object_name From user_objects Where object_type='PROCEDURE'; --所有存储过程

Select object_name From user_objects Where object_type='VIEW'; --所有视图

Select object_name From user_objects Where object_type='TABLE'; --所有表

SELECT text FROM ALL_SOURCE where TYPE='TRIGGER' AND NAME ='TRIG_LOGOFF_AUDIT'; --查询TRIG_LOGOFF_AUDIT触发器内容


---阅读剩余部分---

Oracle 创建、查询视图view 权限不足的解决办法

在创建用户的时候如果直接给用户DBA权限,那么在B用户中可以直接查询A用户的表,但是在创建或查询视图时就会报无权限,在这种情况下需要再在被访问的A用户里面去给予要访问该表的B用户授权,查询的时候回提示权限不足,解决办法如下:

grant create view to B; --创建视图权限
grant select any table to B; --授予查询权限
grant select any dictionary to B; --授予数据字典权限

然后查询就可以了;

Oracle查询所有用户表、视图、存储函数、过程

视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.
视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。
视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中。通过视图看到的数据存放在基表中。
视图看上去非常象数据库的物理表,对它的操作同任何其它的表一样。当通过视图修改数据时,实际上是在改变基表中的数据;相反地,基表数据的改变也会自动反映在由基表产生的视图中。由于逻辑上的原因,有些Oracle视图可以修改对应的基表,有些则不能(仅仅能查询)。
select * from user_views;

查询用户下的所有表

select  table_name from all_tables where owner = upper('TANAME');




---阅读剩余部分---

最新

分类

归档

评论

  • ice: 嗯,少了个cd进入目录·
  • peter: wget https...
  • Emerson: 写的好

其它