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;
    -- 否则会有要删除的专用同义词不存在
    
  • 相关阅读:
    Java方法
    Java流程控制
    Java基础
    常用Dos命令
    MarkDown语法
    怎样获取最新版的javascript文件,解决被浏览器缓存的问题
    笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法
    .net程序部署(mono方式)
    面向对象的一点简易理解
    [李说新语]系列(1)西汉勇士贯高到底该不该死
  • 原文地址:https://www.cnblogs.com/qiudaozhang/p/9482976.html
Copyright © 2011-2022 走看看