oracle 同义词实例

本文介绍如何在数据库中通过用户授权、创建同义词等步骤实现一个用户将表授权给另一个用户,并允许后者直接查询该表数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

现有user1和user2两个用户,将在user2上创建user1的table1的同义词,然后就可以使用user2直接查询该同义词,获得user1的table1的数据。

 

1、使用user1连接,使user2获得user1的table1的查询权限:

 

     grant select on table1 to user2;

 

2、使用user2连接,创建同义词

 

     create or replace public synonym syn_table1 for user1.table1;

 

     现在可查询该同义词是否建立成功:

 

     select * from dba_synonyms where table_owner = 'USER1';

 

     接下来可以直接在user2中查询该同义词的数据:

 

     select * from syn_table1;

 

3、使用user2连接,删除同义词

 

     drop public synonym synoonsyn_table1;

 

4、使用user1连接,移除table1上的user2查询权限

 

     revoke select on table1 from user2;

 

 

5、查询同义词表的列信息

 

     select b.synonym_name as table_name, a.column_name, a.data_type as type_name, 

               decode (a.data_precision, null, a.data_length, a.data_precision) as column_size, 

               a.column_id AS ordinal_position

       from all_tab_columns a, syn b

    where a.owner = b.table_owner and a.table_name = b.table_name and b.synonym_name = 'SYN_TABLE1';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值