oracle同义词
oracle同义词
概述
同义词为对象,如表,视图,序列,存储过程,和其它数据库对象的替代名称。 当您从另一个模式授予对对象的访问权限时,通常使用同义词,并且您不希望用户必须担心知道哪个模式拥有该对象 。同义词提供数据独立性和位置透明性。无论哪个用户拥有表或视图,无论哪个数据库拥有表或视图,同义词都允许应用程序无需修改即可运行。但是,同义词不能替代数据库对象的权限。在用户可以使用同义词之前,必须向用户授予适当的权限。
在这里我使用一个u_test的用户作为说明
创建同义词
语法
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .] synonym_name
FOR [schema .] object_name [@ dblink];
创建一个表
create table student(
sid number(10),
sname varchar2(25)
);
测试数据
insert into student values (1,'penny');
commit;
注意
创建同义词也需要对应的权限,我这里使用system用户创建一个同义词
create public synonym stu for u_test.student;
注意这里创建的是公共同义词,也就是谁都能看见的。也可以使用system用户对u_test授予创建同义词的权限
discon;
connect system/sys;
grant create synonym to u_test;
创建同义词之后,我们可以别的用户比如scott尝试访问student表的数据。
select * from stu;
删除同义词
-- 由于前面创建的是公共同义词,所以删除的时候需要加上public
drop public synonym stu;
-- 否则会有要删除的专用同义词不存在
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现