oracle的rename操作需要注意事项

(1)查看测试表ORACLE_TEST对象信息

SELECT * FROM dba_objects WHERE object_name='ORACLE_TEST';

 (2)查看用户APP_SCOTT对表ORACLE_TEST的访问权限

SELECT * FROM dba_tab_privs WHERE table_name='ORACLE_TEST';

(3)创建一个临时表ORACLE_TEMP,和表ORACLE_TEST的表结构一样

create table SCOTT.ORACLE_TEMP
(
  ID       NUMBER(2) not null,
  NAME     VARCHAR2(2),
  PUSH_RES VARCHAR2(256) default ' ' not null
);

(4)查看该表上的用户权限信息

SELECT * FROM dba_tab_privs WHERE table_name='ORACLE_TEMP';

(5)重命名表ORACLE_TEST为ORACLE_BAK,表ORACLE_TEMP为ORACLE_TEST

alter table SCOTT.ORACLE_TEST rename  to ORACLE_BAK;
alter table SCOTT.ORACLE_TEMP rename  to ORACLE_TEST;

(6)重命名完成后重新查看表ORACLE_TEST对象信息

可以看到,表重名名后同义词失效,需要重新编译同义词。

alter synonym APP_SCOTT.ORACLE_TEST compile;

 (7)查看表ORACLE_TEST上的用户权限

(8)查看表ORACLE_BAK上的用户权限

可以看到rename后,表ORACLE_TEST的权限丢失,需要重新授权。

grant select,update,delete,insert on SCOTT.ORACLE_TEST to APP_SCOTT;

 

动作:alter table a rename to b;

注意:如果a上原来有同义词,同义词失效;a上的用户权限也会丢失。最新的用户权限会根据b来获得。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#慧#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值