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
2276

被折叠的 条评论
为什么被折叠?



