Oracle中同义词(synonym ):oracle
中同义词是任何表、视图、物化视图、序列、存储过程、函数、包、类型、Java
类对象、用户定义类型,或是其他的同义词的别名。由于其只是一个别名,所以除了在数据字典中的定义不占任何空间。
作用:
可以隐藏表原来的名字。
提供对象访问的安全性。
分类:
公共同义词:
所有用户都可以直接引用,并且这种同义词由public组用户所拥有。
私有同义词:
只能由其对象用户直接引用。
创建同义词:
语法:
create synonym 同义词名字 for [用户名.]表名;
例如:给表test创建一个同义词
create synonym my_te for test;
创建一个公共同义词:用户必须具备create public synonym系统权限
语法:
create public synonym 同义词名字 for [用户名.]表名;
例如:给用户名为briup下的test表创建一个public_test同义词
create public synonym public_test for briup.test;
授权给所有人
grant select on my_te to public
创建私有同义词:用户必须具备create public synonym系统权限
如果在其他用户下创建同义词,该用户必须具备create any synonym权限
语法:
create synonym 同义词名字 for [用户名.]表名;
例如:给用户名为briup的test表创建一个同义词private_test
create synonym private_test for briup.test;
删除同义词:
删除公共同义词:
语法:drop public synonym 同义词的名字
例如:drop public synonym public_test;
删除私有同义词:
语法:drop synonym 同义词的名字
例如:drop synonym private_test