zoukankan      html  css  js  c++  java
  • oracle同义词

    oracle同义词

    概述

    ​ 同义词为对象,如表,视图,序列,存储过程,和其它数据库对象的替代名称。 当您从另一个模式授予对对象的访问权限时,通常使用同义词,并且您不希望用户必须担心知道哪个模式拥有该对象 。同义词提供数据独立性和位置透明性。无论哪个用户拥有表或视图,无论哪个数据库拥有表或视图,同义词都允许应用程序无需修改即可运行。但是,同义词不能替代数据库对象的权限。在用户可以使用同义词之前,必须向用户授予适当的权限。

    在这里我使用一个u_test的用户作为说明


    创建同义词

    语法

    CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .] synonym_name
      FOR [schema .] object_name [@ dblink];
    

    创建一个表

    create table student(
      sid number(10),
      sname varchar2(25)
    );
    

    测试数据

    insert into student  values (1,'penny');
    commit;
    

    注意

    创建同义词也需要对应的权限,我这里使用system用户创建一个同义词

    create public synonym stu for u_test.student;
    

    注意这里创建的是公共同义词,也就是谁都能看见的。也可以使用system用户对u_test授予创建同义词的权限

    discon;
    connect system/sys;
    grant create synonym to u_test;
    

    创建同义词之后,我们可以别的用户比如scott尝试访问student表的数据。

    select * from stu;
    

    删除同义词

    -- 由于前面创建的是公共同义词,所以删除的时候需要加上public
    drop public synonym stu;
    -- 否则会有要删除的专用同义词不存在
    
  • 相关阅读:
    51nod1042
    51nod1009
    分库分表Mycat总结
    RocketMQ事务消息实现分析
    RocketMQ消费模式
    mysql中的隐式转换总结
    EXPLAIN用法和结果分析
    MySQL日期时间处理函数总结
    RocketMQ在windows环境下的安装
    深入分析Synchronized原理
  • 原文地址:https://www.cnblogs.com/qiudaozhang/p/9482976.html
Copyright © 2011-2022 走看看