`
guochongcan
  • 浏览: 326908 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle如何创建跨用户视图

 
阅读更多

      Oracle同一个实例下有两个用户A和B。 
      A用户下有个aaa表,B用户想创建一个视图查询A用户的aaa。怎么做?简单的执行grant dba to B就OK了么?错! 
      执行grant dba to B后,B用户可以select A用户下的表,但是当B用户试图创建一个视图查询A用户下的表时,会失败,被提示“权限不足!”。 
      那么该怎么做呢? 
      需要以sysdba身份登录并执行语句: 

Sql代码  收藏代码
  1. grant select on A.aaa to B;  


      到此为止,问题就解决了。 
      但实际情况可能是这样的,A用户下有100张表,而你想把A用户下的所有表的select权限都开放给B用户, 怎么做呢? 
      一句一句去执行grant select on A.[table_name] to B 吗? 
      其实有个简单的办法: 
      以sysdba身份登录,执行语句: 

Sql代码  收藏代码
  1. select 'grant select on A.'||table_name||' to B;'   
  2. from all_tables where owner='A'  


      然后把查询结果导出来批量执行即可。 
      另外,如果你不介意把所有系统权限开放给B的话,有一个更简单的解决办法: 

Sql代码  收藏代码
  1. grant all privileges to B;  


      这样,B用户就具有了所有系统权限,可以为所欲为了。

 

 

 

 

分享到:
评论

相关推荐

    连接其他oracle数据库信息创建本地视图

    总结来说,通过创建Oracle数据库链接并创建本地视图,我们可以方便地访问和操作远程数据库的数据,实现跨数据库的信息共享,而无需复制整个数据集。这一方法在分布式环境、数据集成和实时数据访问的场景下具有显著...

    通过MSQL通过视图访问ORACLE中的表

    本篇主要介绍如何通过MySQL数据库创建视图来访问Oracle数据库中的表,实现数据的互联互通。 首先,我们要理解MySQL和Oracle之间的数据集成。由于它们是两个不同的数据库系统,直接的SQL查询并不能实现跨库操作。...

    ORACLE数据字典与视图

    - **ALL**:表示扩展的用户视图,包含了用户可以直接访问的所有对象的信息。 - **DBA**:表示DBA视图,包含了数据库中所有用户可访问的对象信息。 #### 四、视图详解 下面是一些典型的数据字典视图及其含义: 1. *...

    Oracle10g视图的神图

    在Oracle 10g数据库中,视图作为数据字典的重要组成部分,为系统管理员、开发者以及用户提供了丰富的信息资源。这些视图不仅可以帮助理解数据库的运行状态,还能够提供性能调优所需的实时数据。本文将基于给定的内容...

    ORACLE 动态性能视图详解

    `GV$`视图允许DBA跨多个实例收集信息,它们包含了`INST_ID`列,标识信息来源的实例编号。通过指定`INST_ID`,可以筛选特定实例的数据。在OPS(Oracle Parallel Server)环境中,`GV$`视图可以用来查询OPS_ADMIN_...

    oracle 动态性能视图大全

    Oracle数据库的动态性能视图,通常被称为V$视图,是Oracle系统内部维护的一组特殊视图,主要为系统管理员和数据库管理员提供实时性能监控和诊断数据库运行状态的能力。动态性能视图的内容与数据库的性能相关,并且...

    Oracle性能视图学习大全

    为了方便用户访问,又创建了一系列前缀为`V$`的视图,即所谓的“公共视图”,这些视图实际上是对`v_$`视图的封装。此外,还有一系列以`GV$`开头的视图,用于提供跨实例的信息。 2. **V$视图的底层结构**:V$视图是...

    oracle系统视图作用大全

    在Oracle数据库中,当进行跨多个数据库节点的事务处理时,这个视图可以用于追踪事务的状态和进度。 2. **DBA_2PC_PENDING**: 用于显示等待恢复的分布式事务的信息。这在故障恢复或诊断分布式事务问题时非常有用。 ...

    Oracle数据库管理员经常使用的表和视图

    - **ALL_相关视图**:提供了跨所有模式的信息,如**ALL_USERS**、**ALL_OBJECTS**等。 - **SESSION_相关视图**:提供了会话级别的信息,如**SESSION_ROLES**、**SESSION_PRIVS**等。 - **INDEX_相关视图**:提供了...

    Oracle DATABASE LINK(DBLINK)创建与删除方法

    Oracle DATABASE LINK,简称DBLINK,是一种在不同的Oracle数据库实例间建立连接的方式,允许用户在本地数据库上执行查询和操作远程数据库的数据。DBLINK为跨数据库的通信提供了简单且高效的解决方案。 创建DBLINK的...

    ORACLE 动态性能视图

    - **GV$视图**:在Oracle Real Application Clusters (RAC)环境中,GV$视图提供了跨多个实例的数据视图。与V$视图类似,每个V$视图都有一个对应的GV$视图版本,增加了`INST_ID`列,用于标识信息来自哪个实例。这使得...

    通过ORACLE通用连接访问SQLServer数据库的方法

    这种方法主要依赖于Oracle数据库的异构服务功能,允许用户从Oracle环境中直接查询或操作其他类型数据库(如SQL Server)中的数据。接下来,我们将详细探讨实现这一连接的具体步骤与注意事项。 ### 一、配置ODBC数据...

    oracle跨平台数据迁移

    ### Oracle跨平台数据迁移知识点详解 #### 一、概述 在IT行业中,Oracle数据库因其卓越的性能和稳定性而被广泛采用。随着业务的发展和技术的进步,跨平台的数据迁移变得越来越常见。Oracle提供了多种工具来实现这一...

    oracle 用户创建

    如果需要实现跨用户的访问,需要通过权限的授予来进行。 - **授予对象级别的权限**: ```sql SQL> grant select on scott.emp to zhangsan; ``` #### 七、权限传递 权限传递是指将一个用户拥有的权限再次授予...

    ORACLE物化视图的技术应用.pdf

    2. **数据集成**:物化视图可以用于跨数据库的数据整合,尤其是在分布式系统中,它可以作为一个数据同步的手段,将不同数据库中的数据聚合在一起,形成统一的视图。 3. **数据刷新策略**:Oracle提供了多种刷新物化...

    Oracle用户、权限、角色管理

    同时,系统权限可以跨用户进行回收。 #### 三、实体权限管理 实体权限主要用于控制用户对特定表或视图的访问权限。实体权限的授予可以通过`GRANT`语句完成。 ##### 授予权限 例如,向用户`user02`授予对`user01....

    oracle12c 32位简易客户端

    在SQL*Plus中,用户可以创建、修改和删除数据库对象,如表、视图、索引等,同时还可以运行查询、生成报告、执行数据库脚本以及进行性能调优。通过这个32位的SQL*Plus,用户可以在不安装完整Oracle客户端的情况下,...

    Oracle中定义以及使用同义词的方法

    同义词在Oracle中是数据库对象(如表、视图、存储过程等)的另一种名称,它的主要目的是减少用户在引用对象时需要输入完整的对象路径,尤其是当对象属于其他用户时。这不仅使SQL语句更简洁,也避免了因频繁提及对象...

Global site tag (gtag.js) - Google Analytics