zoukankan      html  css  js  c++  java
  • Oracle synonym 同义词

    Oracle synonym 同义词

      1、Oracle synonym 同义词是数据库当前用户通过给另外一个用户的对象创建一个别名,然后可以通过对别名进行查询和操作,等价于直接操作该数据库对象。

      2、Oracle同义词常常是给表、视图、函数、过程、包等制定别名,可以通过CREATE 命令进行创建、ALTER 命令进行修改、DROP 命令执行删除操作。

      3、Oracle synonym 同义词按照访问权限分为私有同义词、公有同义词。

      4、私有同义词:私有同义词只能当前用户可以访问,前提:当前用户具有create synonym 权限。

      5、公有同义词:公有同义词只能具有DBA用户才能进行创建,所有用户都可以访问的。

    语法结构:

      CREATE [OR REPLACE] [PUBLIC] SYSNONYM [当前用户.]synonym_nameFOR [其他用户.]object_name;

    解析:

      1、create [or replace] 命令create建表命令一样,当当前用户下同义词对象名已经存在的时候,就会删除原来的同义词,用新的同义词替代上。

      2、[public]:创建的是公有同义词,在实际开发过程中比较少用,因为创建就代表着任何用户都可以通过自己用户访问操作该对象,一般我们访问其他用户对象时,需要该用户进行授权给我们。

      3、用户名.object_name:oralce用户对象的权限都是自己用户进行管理的,需要其他用户的某个对象的操作权限,只能通过对象拥有者(用户)进行授权给当前用户。或者当前用户具有系统管理员权限(DBA),即可通过用户名.object_name操作该对象。

    案例分析:

      我们在school用户下也创建了一张学生信息表(stuinfo),该信息表只存在一个学生信息“张三”。由于我们当前用户student用户不具有school.stuino的权限,因此要需要该用户授权,然后才能访问。

    操作如下:

      1、--未授权之前查询(提示表不存在,没有操作权限)select * from school.stuinfo;

      2、--登录jsq_copy用户进行授权 conn school/123456;  grant all on stuinfo to student;

      3、--授权后再次查询该表数据 conn student/123456;  select * from school.stuinfo; 

    同义词创建

      我们现在为school.stuinfo创建同义词stuinfo_copy,然后通过当前用户student直接操作同义词stuinfo_copy查询school.stuinfo表数据。

      代码如下:

        create synonym stuinfo_copy for school.stuinfo;

      创建同义词之后,即可使用select *from stuinfo_copy 进行查询,效果等同于select *from school.stuinfo。

    同义词删除

      同义词删除只能通过同义词拥有者的用户或者具有DBA权限的用户才能删除。

    语法结构:

      DROP [PUBLIC] SYNONYM [用户.]sysnonym_name;

    作者:小鱼
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    【ROC曲线】关于ROC曲线、PR曲线对于不平衡样本的不敏感性分析说引发的思考
    MathJax测试
    现有C2B模式小总结
    语音识别技术简介
    Spark运行调试方法与学习资源汇总
    [Apache Spark源码阅读]天堂之门——SparkContext解析
    对三维数据集的K-means聚类研究
    根据《关于“k-means算法在流式细胞仪中细胞分类的应用”的学习笔记总结》撰写的中期报告
    关于《k-means算法在流式细胞仪中细胞分类的应用》的学习笔记总结
    用shell脚本自动化安装hadoop
  • 原文地址:https://www.cnblogs.com/sinosoft/p/10767210.html
Copyright © 2011-2022 走看看