oracle同义词
- 格式:doc
- 大小:22.00 KB
- 文档页数:2
Oracle Dblink and synonym(同义词)一.创建前提1.具有创建link权限2.创建同义词权限(synonym)3.授权命令(在sys用户下)grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to local_userName;二.Link相关权限的查看方式1.以sys用户登录本地数据库2.查看命令:select * from user_sys_privswhere privilege like upper('%link%');结果:3.可以看出dblink有三种权限DATABASE LINK (只能是创建者使用)PUBLIC DATABASE LINK (所有用户)DROP PUBLIC DATABASE LINK (删除link)三.DBlink的两种创建方式1. 在本地数据库tnsnames.ora文件中配置create public database link link_name connect to remote_user identified by remote_password using 'instance_name';其中link_name是你创建的dblink名字,instance_name是远程数据库的实例名,remote_user/remote_password是登录到远程数据库的用户/密码。
注:文件中修改如下2. sql命令直接创建(remote:远程)Create public database link link_nameconnect to remote_user identified by remote_passwordusing ‘(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =remote_ip)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = remote_instance_name)))’;特别注意:如果是在10g访问11g 密码必须加双引号,否则访问会出错。
oracle 同义词语句
同义词是指具有相同或者类似含义的词语。
在Oracle数据库中,同义词是指一个对象的替代名称,用于提供对其他用户的对象的访
问权限。
当用户没有直接访问某个对象的权限时,可以通过同义词
来间接访问该对象。
同义词的语句通常包括以下关键字和语法:
1. 创建同义词的语句:
CREATE SYNONYM synonym_name FOR object_name;
其中,synonym_name是要创建的同义词的名称,
object_name是要引用的对象的名称。
通过这个语句,可以创建一
个同义词,使得用户可以通过同义词来访问指定的对象。
2. 删除同义词的语句:
DROP SYNONYM synonym_name;
这条语句用于删除指定的同义词,使得用户不能再通过该同
义词访问对象。
3. 显示同义词的语句:
SELECT FROM ALL_SYNONYMS;
SELECT FROM USER_SYNONYMS;
这两条语句分别用于显示所有用户可访问的同义词,以及当前用户自己创建的同义词。
总的来说,同义词在Oracle数据库中起到了简化访问权限管理和提高数据安全性的作用。
通过合理使用同义词,可以更好地组织和管理数据库对象,提高数据库的可用性和安全性。
ORACLESYNONYM详解以下内容整理⾃Oracle 官⽅⽂档⼀概念A synonym is an alias for any table, ,materialized view, sequence, procedure, function, package, , Java classschema , user-defined object type, or another synonym. Because a synonymis simply an alias, it requires no storage other than its definition in thedata .Oracle中同义词是任何表、视图、物化视图、序列、、、包、类型、JAVA类对象、⽤户定义类型,或是其他的同义别名。
由于其只是⼀个别名,所以除了在数据字典中的定义不占任何空间。
Synonyms are often used for security andconvenience. For example, they can do the following:同义词常⽤于安全和⽅便。
例如,它们可以做:1. Mask the name and owner of anobject 伪装对象名称和其所有者。
2. Provide location transparency for remoteobjects of a distributed database 为分布式数据库远程对象提供位置透明性3. Simplify SQL statements for databaseusers 简化数据库⽤户访问对象SQL语句4. Enable restricted similar tospecialized s when exercising fine-grained access control 当⾏使精细化访问控制时提供类似指定视图的访问限制You can create both public and privatesynonyms. A public synonym is owned by the special user group named PUBLIC andevery user in a database can it. A private synonym is in the schema of aspecific user who has control over its availability to others.你可以创建public和private同义词。
oracle删除⼀张表后,索引,同义词,视图,约束会被删除么问题描述:看到有⼀道题,说删除⼀张表之后,什么会被关联删除进⾏测试,看看⼀张表什么会被关联删除,进⾏scoot下的EMP进⾏测试⼀、创建测试需求⽤例表结构:SQL> desc emp;Name Null? Type----------------------------------------- -------- ----------------------------EMPNO NOT NULL NUMBER(4)ENAME VARCHAR2(10)JOB VARCHAR2(9)MGR NUMBER(4)HIREDATE DATESAL NUMBER(7,2)COMM NUMBER(7,2)DEPTNO NUMBER(2)创建视图:CREATE OR REPLACE VIEW V_EMPASSELECT * FROM EMP WHERE ENAME LIKE '%A%'UNION ALLSELECT * FROM EMP WHERE ENAME LIKE '%S%'UNION ALLSELECT * FROM EMP WHERE SAL >= 3000;CREATE OR REPLACE VIEW V_EMPASSELECT * FROM EMP WHERE ENAME LIKE '%A%'UNIONSELECT * FROM EMP WHERE ENAME LIKE '%S%'UNIONSELECT * FROM EMP WHERE SAL >= 3000;创建序列:CREATE SEQUENCE SEQ_BJSXTSTART WITH 20001INCREMENT BY 2MAXVALUE 99999999MINVALUE 1CYCLECACHE 50创建同义词create or replace synonym syn_emp for scott.emp;删除前状态视图查询:SQL> select view_name,view_type from user_views;VIEW_NAME VIEW_TYPE------------------------------ ------------------------------V_EMP索引查询:SQL> select INDEX_NAME,TABLE_NAME,STATUS from user_indexes;INDEX_NAME TABLE_NAME STATUS------------------------------ ------------------------------ --------SYS_IL0000089251C00003$$ TEST VALIDIDX_T_ID T VALIDPK_EMPNO_OGG EMP_OGG VALIDPK_EMP EMP VALIDIDX_EMP_ENAME EMP VALIDPK_DEPTNO_OGG DEPT_OGG VALIDPK_DEPT DEPT VALID7 rows selected.序列查询:SQL> r1* select * from user_sequencesSEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER------------------------------ ---------- ---------- ------------ - - ---------- -----------SEQ_BJSXT 1999999992 Y N 5020101主键查询:主键INDEX_NAME TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESCEND INDEX_TYPE1 IDX_EMP_ENAME EMP ENAME 11010 ASC NORMAL2 PK_EMP EMP EMPNO 1220 ASC NORMAL外键约束:select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 'EMP';1 SCOTT FK_DEPTNO R EMP <Long> SCOTT PK_DEPT NO ACTION ENABLED NOT DEFERRABLE IMMEDIATE VALIDATED USER NAME 2013/8/2412:04:21同义词查询:SQL> SELECT * FROM USER_SYNONYMS;SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------SYN_EMP SCOTT EMPuser_obejcts状态查询:14和17分别是emp表和emp表中的索引object,其余的还能看到序列,视图,同义词的对象select * from user_objects;OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION1 PK_DEPT 8710787107 INDEX 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 42 DEPT 8710687106 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 13 BONUS 8711087110 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 14 SALGRADE 8711187111 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 15 EMP_OGG 8878988789 TABLE 2020/12/2313:14:062020/12/2313:14:302020-12-23:13:14:06 VALID N N N 16 DEPT_OGG 8879088790 TABLE 2020/12/2313:14:072020/12/2313:14:422020-12-23:13:14:07 VALID N N N 17 PK_EMPNO_OGG 8879188791 INDEX 2020/12/2313:14:112020/12/2313:14:112020-12-23:13:14:11 VALID N N N 48 PK_DEPTNO_OGG 8879288792 INDEX 2020/12/2313:14:122020/12/2313:14:122020-12-23:13:14:12 VALID N N N 49 TEST 8925189251 TABLE 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N N N 110 IDX_T_ID 8927489274 INDEX 2021/6/1416:44:432021/6/1416:44:432021-06-14:16:44:43 VALID N N N 411 SYS_IL0000089251C00003$$ 8925389253 INDEX 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 412 SYS_LOB0000089251C00003$$ 8925289252 LOB 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 813 T 8927389273 TABLE 2021/6/1416:40:392021/6/1416:44:452021-06-14:16:40:39 VALID N N N 114 EMP 8710887108 TABLE 2013/8/2412:04:212022/1/2316:31:062022-01-23:16:31:06 VALID N N N 115 SEQ_BJSXT 90884 SEQUENCE 2022/1/2316:04:252022/1/2316:04:252022-01-23:16:04:25 VALID N N N 116 SYN_EMP 90891 SYNONYM 2022/1/2316:27:282022/1/2316:27:282022-01-23:16:27:28 INVALID N N N 117 BIN$1jx+fvk2Dy3gUwajqMCaPA==$19088590885 INDEX 2022/1/2316:04:382022/1/2316:27:532022-01-23:16:27:53 VALID N N N 418 V_EMP 90883 VIEW 2022/1/2316:03:582022/1/2316:03:582022-01-23:16:03:58 INVALID N N N 119 BIN$1jx+fvk3Dy3gUwajqMCaPA==$187******** INDEX 2013/8/2412:04:212022/1/2316:27:532022-01-23:16:27:53 VALID N N N 420 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/2316:10:402022/1/2316:10:402022-01-23:16:10:40 INVALID N N N 1回收站:SQL> show recyclebinSQL>⼆、删除表SQL> drop table emp;Table dropped.索引状态:INDEX_NAME TABLE_NAME STATUS1 SYS_IL0000089251C00003$$ TEST VALID2 IDX_T_ID T VALID3 PK_EMPNO_OGG EMP_OGG VALID4 PK_DEPTNO_OGG DEPT_OGG VALID5 PK_DEPT DEPT VALID视图状态:SQL> select view_name,view_type from user_views;VIEW_NAME VIEW_TYPE------------------------------ ------------------------------V_EMP序列状态:SQL> select * from user_sequences;SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER------------------------------ ---------- ---------- ------------ - - ---------- -----------SEQ_BJSXT 1999999992 Y N 5020101同义词状态:SQL> SELECT * FROM USER_SYNONYMS;SYNONYM_NAME TABLE_OWNER TABLE_NAME DB_LINK------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------------------------------------------------------SYN_EMP SCOTT EMPuser_objects状态查询:可以看到⽤户表以及索引就已经被删除了select * from user_objects;OBJECT_NAME SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL_TIME TIMESTAMP STATUS TEMPORARY GENERATED SECONDARY NAMESPACE EDITION_NA1 PK_DEPT 8710787107 INDEX 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 42 DEPT 8710687106 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 13 BONUS 8711087110 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 14 SALGRADE 8711187111 TABLE 2013/8/2412:04:212013/8/2412:04:212013-08-24:12:04:21 VALID N N N 15 EMP_OGG 8878988789 TABLE 2020/12/2313:14:062020/12/2313:14:302020-12-23:13:14:06 VALID N N N 16 DEPT_OGG 8879088790 TABLE 2020/12/2313:14:072020/12/2313:14:422020-12-23:13:14:07 VALID N N N 17 PK_EMPNO_OGG 8879188791 INDEX 2020/12/2313:14:112020/12/2313:14:112020-12-23:13:14:11 VALID N N N 48 PK_DEPTNO_OGG 8879288792 INDEX 2020/12/2313:14:122020/12/2313:14:122020-12-23:13:14:12 VALID N N N 49 TEST 8925189251 TABLE 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N N N 110 IDX_T_ID 8927489274 INDEX 2021/6/1416:44:432021/6/1416:44:432021-06-14:16:44:43 VALID N N N 411 SYS_IL0000089251C00003$$ 8925389253 INDEX 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 412 SYS_LOB0000089251C00003$$ 8925289252 LOB 2021/6/1316:12:422021/6/1316:12:422021-06-13:16:12:42 VALID N Y N 813 T 8927389273 TABLE 2021/6/1416:40:392021/6/1416:44:452021-06-14:16:40:39 VALID N N N 114 SEQ_BJSXT 90884 SEQUENCE 2022/1/2316:04:252022/1/2316:04:252022-01-23:16:04:25 VALID N N N 115 SYN_EMP 90891 SYNONYM 2022/1/2316:27:282022/1/2316:27:282022-01-23:16:27:28 INVALID N N N 116 V_EMP 90883 VIEW 2022/1/2316:03:582022/1/2316:03:582022-01-23:16:03:58 INVALID N N N 117 PRO_SUPPLEMENT_LEAVE_MAPPING 90886 PROCEDURE 2022/1/2316:10:402022/1/2316:10:402022-01-23:16:10:40 INVALID N N N 1结合测试得出结论1.删除⼀张表,肯定会删除⼀张表中的数据和这个对象2.删除表后,同义词,视图,序列不会被删除3.删除表后,索引会被删除,不会失效。
Oracle同义词详解(synonym)Oracle 同义词详解(synonym)⼀、Oracle同义词概念 Oracle 数据库中提供了同义词管理的功能。
同义词是数据库⽅案对象的⼀个别名,经常⽤于简化对象访问和提⾼对象访问的安全性。
在使⽤同义词时,Oracle数据库将它翻译成对应⽅案对象的名字。
与视图类似,同义词并不占⽤实际存储空间,只有在数据字典中保存了同义词的定义。
在Oracle数据库中的⼤部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。
⼆、Oracle同义词分类 Oracle同义词有两种类型,分别是公⽤Oracle同义词与私有Oracle同义词。
1)公⽤Oracle同义词:由⼀个特殊的⽤户组Public所拥有。
顾名思义,数据库中所有的⽤户都可以使⽤公⽤同义词。
公⽤同义词往往⽤来标⽰⼀些⽐较普通的数据库对象,这些对象往往⼤家都需要引⽤。
2)私有Oracle同义词:它是跟公⽤同义词所对应,他是由创建他的⽤户所有。
当然,这个同义词的创建者,可以通过授权控制其他⽤户是否有权使⽤属于⾃⼰的私有同义词。
三、Oracle同义词创建及删除 创建公有Oracle同义词的语法:Create [public] synonym 同义词名称 for [username.]objectName; Drop [public] synonym 同义词名称四、Oracle同义词的作⽤ 1) 多⽤户协同开发中,可以屏蔽对象的名字及其持有者。
如果没有同义词,当操作其他⽤户的表时,必须通过user名.object名的形式,采⽤了 Oracle同义词之后就可以隐蔽掉user名,当然这⾥要注意的是:public同义词只是为数据库对象定义了⼀个公共的别名,其他⽤户能否通过这个别名访问这个数据库对象,还要看是否已经为这个⽤户授权。
2) 为⽤户简化sql语句。
上⾯的⼀条其实就是⼀种简化sql的体现,同时如果⾃⼰建的表的名字很长,可以为这个表创建⼀个Oracle同义词来简化sql开发。
如何创建同义词导读:同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。
下面就让我们来了解一下如何创建同义词!如何创建同义词Oracle的同义词有两种类型:公有同义词与私有同义词。
1:公有同义词由一个特殊的用户组Public所拥有。
2:私有同义词是由创建他的用户所有。
创建同义词的语法:create[public]synonym同义词名称for[username.]objectName删除同义词的语法:Drop[public]synonym同义词名称查看所有同义词:select*fromdba_synonyms【Oracle同义词创建及其作用】从字面上理解就是别名的意思,和试图的功能类似。
就是一种映射关系。
1.创建同义词语句:createpublicsynonymtable_nameforuser.table_name;其中第一个user_table和第二个user_table可以不一样。
此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个DatabaseLink(数据库连接)来扩展访问,然后在使用如下语句创建数据库同义词:createsynonymtable_namefortable_name@DB_Link;当然,你可能需要在user用户中给当前用户(user2)授权:grantselect//onuser22.删除同义词:droppublicsynonymtable_name;3.查看所有同义词:select*fromdba_synonyms同义词拥有如下好处:节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;扩展的数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;同义词可以创建在不同一个数据库服务器上,通过网络实现连接。
Oracle数据库中提供了同义词管理的功能。
Oracle同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。
oracle synonyms用法Oracle Synonyms 用法: 简介与用途介绍:Oracle Synonyms(同义词)是Oracle数据库中的重要功能之一。
它允许用户为表、视图、序列、过程等数据库对象创建一个替代的名称。
通过使用同义词,用户可以简化对数据库对象的引用,并提高数据库的可维护性和可扩展性。
同义词的用途:1. 数据库对象重命名:在某些情况下,我们可能需要重命名数据库对象。
然而,一旦对象的名称发生变化,已经引用这些对象的数据库程序和代码都需要进行相应的更改。
通过使用同义词,我们可以避免这种麻烦。
我们只需要将同义词与对象关联,然后对象的名称变化将不会影响到已存在的代码。
2. 简化引用:在复杂数据库结构中,对象名称可能会非常冗长和复杂。
为了方便引用,我们可以使用同义词来提供一个更简洁的名称。
这不仅方便了数据库开发人员,也提高了代码的可读性和可维护性。
3. 数据库安全与权限管理:通过同义词,我们可以实现对数据库对象的访问控制和权限管理。
我们可以使用同义词来授予或撤销用户对特定数据库对象的访问权限,同时保护数据库的安全性。
4. 数据库重构:在数据库重构的过程中,同义词可以提供一种平滑的过渡方式。
通过创建同义词,我们可以在更改数据库结构时保持代码的兼容性,并逐步迁移到新的数据库对象上。
步骤1:创建同义词使用CREATE SYNONYM语句可以创建一个同义词。
语法如下:CREATE [PUBLIC] SYNONYM synonym_name FOR object_name;其中,synonym_name是所需的同义词的名称,object_name是被同义词引用的数据库对象的名称。
示例:CREATE SYNONYM emp FOR hr.employees;以上例子创建了一个名为EMP的同义词,该同义词引用了HR.EMPLOYEES表。
一旦创建了同义词,我们就可以使用同义词而不是完整的对象名称引用表。
查看Oracle当前⽤户下的(表视图,同义词...)查看Oracle当前⽤户下的信息(⽤户,表视图,索引,表空间,同义词,存储过程函数,约束条件)0、表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables; 1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee='GAME'; 2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper('&index_name'); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name'); 4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences; 5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper('&view_name'); 6、同义词 查看同义词的名称 SQL>select * from user_synonyms; 7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name'); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position; 8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE'; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper('&plsql_name');9、查看建表语句:SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_NAME')FROM DUAL; (表名TABLE_NAME⼀定要来⼤写)。
oracle同义词.txt30生命的美丽,永远展现在她的进取之中;就像大树的美丽,是展现在它负势向上高耸入云的蓬勃生机中;像雄鹰的美丽,是展现在它搏风击雨如苍天之魂的翱翔中;像江河的美丽,是展现在它波涛汹涌一泻千里的奔流中。
Oracle同义词创建及其作用
在Oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对数据库进行操作的,但是我们必须要已授权的表的名称前键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个Oracle同义词吧!这样我们就可以直接使用同义词来使用表了。
1.同义词的概念
Oracle数据库中提供了同义词管理的功能。
同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。
在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。
与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。
在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。
2.Oracle同义词的分类
Oracle同义词有两种类型,分别是公用Oracle同义词与私有Oracle同义词。
1)公用Oracle同义词:由一个特殊的用户组Public所拥有。
顾名思义,数据库中所有的用户都可以使用公用同义词。
公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
2)私有Oracle同义词:它是跟公用同义词所对应,他是由创建他的用户所有。
当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
3.Oracle同义词创建及删除
创建公有Oracle同义词的语法:Create [public] synonym 同义词名称for [username.]objectName;
Drop [public] synonym 同义词名称
4.Oracle同义词的作用
1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。
如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了Oracle同义词之后就可以隐蔽掉user 名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
2) 为用户简化sql语句。
上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个Oracle同义词来简化sql开发。
3)为分布式数据库的远程对象提供位置透明性。
5.Oracle同义词在数据库链中的作用
数据库链是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。
Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle 连接串’; 访问对象要通过 object名@数据库链名。
同义词在数据库链中的作用就是提供位置透明性。