Oracle同义词:即现有对象的别名,使用同义词有如下好处
1.简化sql语句; 2.隐藏对象名称和所有者; 3.提供对象的公共访问
具体解释如下: 1.当表的名称很长的时候用同义词简化代码量 eg:select * from my_table_student
这个时候给my_table_student起一个别名:create synonym mts for my_table_student
然后根据mts来查询my_table_student中的内容即可 select * from mts 效果是一样的
2.隐藏对象名称和所有者:如果此时的表在scott用户下创建的,此时更换到系统system时,根据select * from my_table_student或
select * from mts是查询不到的,必须在表名前加上对应的用户名,但是一些骇客得到这些所有者会把大量数据注入到你的数据库
中,很不安全,这个时候就要用到第二个和第三个特点,为表my_table_student创建公共访问,在所有用户下都可以根据同义词来对
数据进行操作,而且操作是安全的,隐藏了对应的所有者. eg:create public synonym mts for my_table_student
这个时候无论是在scott或者system下都可以用mts来操作数据库
注意:开始的时候如果用的scott用户,是没有创建同义词额权限的,这个时候必须切换到system用户下为scott用户赋予对应的权限,具体如下
1.切换到system 2.执行 grant create [public] synonym to scott
本文由【waitig】发表在等英博客 本文固定链接:Oracle同义词 欢迎关注本站官方公众号,每日都有干货分享!
点赞 (0)赏分享 (0)