项目中遇到,遂从网上搜索了下,觉得如下解释较为通俗易懂:
假设oracle有以下两个用户: admin , visitor
我们在admin下建立了 testtable 这个表,并且对visitor用户赋权
然后我们用visitor登陆 : 查询这个表的时候我们一定需要这样写
select * from admin.testtable
如果直接写 select * from testtable oracle会报错说表不存在
但是我们可以在visitor里建立[私有同义词] 让 testtable = admin.testtable
这样在visitor下就可以直接输入 select * from testtable进行查询
但是如果用户很多的情况下会觉得很麻烦,因为每个用户都需要加[私有同义词] testtable=admin.testtable
所以就出现了 [公有同义词]
直接在admin用户下建立公有同义词 testtable = testtable
这样做好后,所有的用户都可以直接使用
select * from testtable 进行访问而并不需要加前缀,也不用再加[私有同义词]了
项目中例子:
oracle 用户 infsa 下 有表 a,把权限赋给infss用户
在infsa下执行
grant all on a to infss ;
create public synonym inf for a;
分享到:
相关推荐
在Oracle环境中,同义词主要用于简化对象访问,增强安全性,并在多用户协作和分布式数据库场景中提供便利。 1. **同义词的概念** 同义词在Oracle中是数据库对象(如表、视图、存储过程等)的另一种名称,它的主要...
在Oracle数据库中,同义词(Synonyms)和视图(Views)是两种非常重要的对象,它们都提供了数据访问和管理的便捷方式。下面将详细解释这两种概念以及它们在实际应用中的作用。 **同义词** 同义词是Oracle数据库提供...
同义词分为公共(Public)和私有(Private)两种类型,公共同义词可供所有用户使用,而私有同义词仅限于特定用户或被授权的用户。 管理同义词的过程包括创建、查看和编辑。创建同义词可以使用Oracle企业管理器或者...
在Oracle中,数据库管理员(DBA)需要掌握各种操作,包括表空间管理、用户管理、权限控制、序列使用、同义词创建以及表的维护等。以下是对这些关键知识点的详细说明: 1. **表空间管理**:表空间是Oracle数据库中...
用户可能通过私有同义词(private synonyms)、公共同义词(public synonyms)访问对象。私有同义词对于不同的用户来说是不同的对象,因此相关的SQL语句不能共享;而公共同义词则允许不同用户间的SQL语句共享,前提...
- **公共同义词 (Public Synonyms)**:公共同义词可以被数据库中的所有用户访问。这些同义词为用户提供了一个统一的接口来访问表,而无需知道表的实际名称或所有者。 - **处理同名对象**:在编写SQL语句时,必须明确...
同时,涉及的表和视图对象也必须相同,包括私有同义词(private synonyms)和公共同义词(public synonyms)。需要注意的是,跨用户共享 SQL 语句时,可能会因为对象权限和所有权的不同而受到影响。 优化查询不仅仅...
- **私有同义词**(Private Synonym):只能被当前模式的用户访问。 - **共有同义词**(Public Synonym):所有用户都可以访问,但创建者需要具有`CREATE PUBLIC SYNONYM`权限。 ##### 创建同义词 创建同义词的...
创建同义词可以是公有的(Public),对所有用户可见,也可以是私有的(Private),仅对创建它的用户可见。 在命名数据库对象时,需遵循一定的规则,如长度限制(通常30个字符)、不能使用保留字、首字符必须是字母...
- CREATE PRIVATE SYNONYM、CREATE PUBLIC SYNONYM、CREATE ANY SYNONYM分别用于创建私有同义词、公共同义词以及在任何模式中创建同义词。 因此,答案为**C.CREATE SYNONYM**。 ### D17、PL/SQL块中不能直接使用...
**解析**: 在Oracle数据库中,数据字典由一系列的视图和表组成,它们用于描述数据库的物理和逻辑结构,以及存储各种元数据。这些数据字典对象主要位于**SYS**模式下,这是因为SYS用户拥有最高的权限,并且负责管理...
- **解析:** 在Oracle中,可以通过`CURRVAL`和`NEXTVAL`伪列来访问序列的当前值和下一个值。 - **答案:** A.CURRVAL 和 NEXTVAL #### 13. 创建带有错误的视图 - **题目:** 使用哪个选项可以创建带有错误的视图? - ...
例如,私有同义词(private synonym)和公共同义词(public synonym)可能导致相同的SQL语句在不同用户间无法共享,因为它们可能指向不同的数据库对象。 6. **性能监控与调整**:使用EXPLAIN PLAN和V$SQL视图来分析...
- **CREATE PRIVATE SYNONYM**:创建私有同义词。 - **CREATE PUBLIC SYNONYM**:创建公共同义词。 - **CREATE SYNONYM**:创建同义词,但不区分公共或私有。 - **CREATE ANY SYNONYM**:创建任何同义词。 **答案**...
Oracle中的DBLink是一种数据库连接机制,它允许用户在不同的Oracle数据库之间进行数据查询和操作,无需设置复杂的网络连接。在Oracle数据库系统中,DBLink提供了跨数据库的数据集成和交互的能力,使得用户可以在本地...
- **解析**: Oracle中的分析函数主要用于复杂的统计和数据分析,如计算累计排名、移动平均数等。因此,正确答案是**B. 分析**。 ### 6. 别名生成 - **题目**: (b)SQL语句将为计算列SAL*12生成别名AnnualSalary。...
4. **对象一致性**:共享SQL语句的条件之一是访问的对象必须一致,包括私有同义词(Private Synonym)和公共同义词(Public Synonym)。不同的用户对象即使具有相同的同义词名称,也可能指向不同的实际对象,这会...
它通常用作`this`关键字的同义词,用来引用当前页面的方法和属性。 - **`pageContext`**:提供了一个方便的API来访问其他JSP对象,并且可以简化对JSP页面中常用操作的支持。 - **`request`**:表示客户端发送到...