Oracle同义词创建

============同义词创建步骤==============

例如:A用户想通过同义词访问B用户下的table表

第一步:先在B用户下创建一个同义词:create public synonym table for table;

第二步:B用户将table表的权限授权给A用户:grant insert, delete, update, select on B.table to A;

第三步:用A用户账号直接访问B用户下的table表(无需带上B表名):select * from table;

============同义词操作语法==============

1.授权创建同义词

在管理员用户下下执行:grant create any synonym to testuser; grant create public synonym to testuser; (testuser 为被授权的数据库用户名)。

2.取消授权创建同义词

在管理员用户下执行:revoke create any synonym to testuser; revoke create public synonym to testuser; 

3.授权取消同义词创建能力

grant drop public synonym to testuser;

4.取消授权取消同义词创建能力:

revoke drop public synonym to testuser;

5.创建同义词的语法

create [public] synonym 同义词名称 for 对象名; (public 表示系统中所有的用户都可以访问所创建的同义词,不带public关键字表示为私有同义词;对象名 表示被创建同义词的对象,可以是一张表、一个试图等)

6.创建某一张表的同义词

例如为表名为demo_test的表创建同义词:

create synonym s for demo_test,使用方法:select * from s。create public synonym p_product for p_product

7.删除同义词

drop public synonym s;

8.查询该所有的同义词

select t.OBJECT_NAME, t.OBJECT_TYPE, t.CREATED, t.status from user_objects t where t.OBJECT_TYPE like '%SYN%' and t.status = 'VALID';(status表示该同义词的状态)

9.查询同义词所属用户

SELECT synonym_name, table_owner, table_name FROM user_synonyms;

10.修改同义词

ORACLE并没有提供修改同义词(Synonym)的命令,如果您要修改某一同义词(Synonym)的话,您要先把它删除掉,之后再重新建立这个同义词(Synonym)。

11.同义词使用方法

如果为共有同义词,直接访问,例如:select * from s,在其他用户里也是如此;

如果为私有同义词,则需要带上创建该同义词的用户名,例如:select * from testuser.s。

猜你喜欢

转载自guwq2014.iteye.com/blog/2150506
今日推荐