Oracle创建数据库同义词

本文介绍如何在数据库中进行权限授予及同义词创建的过程。首先展示如何通过SQL命令将特定表的全部权限从一个用户转移给另一个用户。接着演示了接收权限的用户如何为该表创建同义词以便于使用。最后提供了查询数据库中所有同义词的SQL语句。
1.在A用户下授权“商户信息表”给B用户
grant all on TBL_INF_MCHNT_INF to B;
commit;
2.在B用户下建立同义词
create synonym TBL_INF_MCHNT_INF for A.TBL_INF_MCHNT_INF;
3. 查询数据库所有同义词select * from sys.synonyms
### Oracle 数据库同义词创建与使用 #### 创建同义词Oracle 数据库中,可以通过 `CREATE SYNONYM` 命令来创建同义词同义词分为两种类型:公有同义词和私有同义词。 - **公有同义词** 公有同义词允许所有用户访问某个数据库对象而无需指定其所属模式。要创建公有同义词,需要具备 `CREATE PUBLIC SYNONYM` 权限。以下是创建公有同义词的语法示例: ```sql CREATE PUBLIC SYNONYM suppliers FOR app.suppliers; ``` 上述命令为 `app.suppliers` 表创建了一个名为 `suppliers` 的公有同义词[^3]。这意味着任何用户都可以通过简单的 `SELECT * FROM suppliers;` 查询数据,而不需要显式指明表属于 `app` 模式。 - **私有同义词** 私有同义词仅对其创建者可见并可访问。创建私有同义词时,默认情况下它会归属于当前用户的模式下。以下是创建私有同义词的语法示例: ```sql CREATE SYNONYM my_synonym FOR another_schema.another_table; ``` 这里,`my_synonym` 是指向另一个模式中的表 `another_table` 的私有同义词[^1]。 --- #### 删除同义词 如果不再需要某一同义词,可以使用 `DROP SYNONYM` 命令将其删除。对于公有同义词,需附加关键字 `PUBLIC`;而对于私有同义词,则只需指定同义词名称即可。 - 删除公有同义词: ```sql DROP PUBLIC SYNONYM suppliers; ``` - 删除私有同义词: ```sql DROP SYNONYM my_synonym; ``` --- #### 同义词的作用 同义词的主要作用在于简化 SQL 语句的编写以及提高跨模式或跨数据库访问的便利性。具体来说,它可以实现以下功能: - 提供一种简化的命名机制,使复杂的名字变得易于记忆。 - 隐藏底层对象的实际位置,增强系统的灵活性和安全性。 - 减少硬编码路径依赖的风险,便于维护和重构数据库结构[^2]。 例如,在多租户环境中,不同的应用程序可能运行在同一套物理表之上。此时,管理员可通过创建多个同义词让各应用看到逻辑上的独立资源。 --- #### 示例场景 假设存在一张位于 `hr` 方案下的员工信息表 `employees`,我们希望其他方案能够方便地查询此表的数据。为此,我们可以执行如下操作: 1. 创建公有同义词以便全局共享: ```sql CREATE PUBLIC SYNONYM emp_for_all FOR hr.employees; ``` 2. 用户可以直接调用新建立好的别名进行查询: ```sql SELECT employee_id, first_name, last_name FROM emp_for_all WHERE department_id = 50; ``` 同样地,如果我们只想让某些特定角色拥有快捷入口,则可以选择构建专属他们的私人版本链接到目标实体上。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值