zoukankan      html  css  js  c++  java
  • oracle数据库用户之间授权

     今天遇到一个数据库的问题:

      系统数据库用户下创建了几个视图用于外部系统开发报表使用,当外部系统提取视图数据时,需要通过一个只能访问需要视图权限的用户,于是想到给他创建一个新的用户,并给这个用户分配只能访问这几个视图的权限。

    1.   使用 oracle sql developer 客户端登陆数据库。

                    

      2.  查看当前数据库用户拥有的角色:

         select * from USER_ROLE_PRIVS; 

         

        


       

         USER_ROLE_PRIVS 描述授予当前用户的角色。

     USER_ROLE_PRIVS


     

       DBA_SYS_PRIVS描述授予用户和角色的系统权限。

      oracle—DBA_SYS_PRIVS数据字典

       


       查看用户系统权限:select * from dba_sys_privs;

       

      


       USER_SYS_PRIVS描述了授予当前用户的系统权限。

       USER_SYS_PRIVS

       


        查看用户系统权限:select * from user_sys_privs;

        

        3、因为系统数据库用户拥有dba权限,所以,使用数据库系统用户创建用户:

         create user BI identified by 123;

        

        

        

        4、给BI用户授权连接权限:

          grant connect to BI;

        

        5、给BI用户授权

          grant RESOURCE to BI;

        

        6、给BI用户授权select 某视图的权限:

          

          

        7、使用BI用户连接数据库:

          查询视图发现提示表或视图不存在:SELECT * FROM VW_MONTHLY_BUDGET_ANALYSI;

          

          在视图前加上视图所有者用户名称则可以查询成功。 eg:SELECT * FROM FSSC.VW_MONTHLY_BUDGET_ANALYSI;

          

          

        7、给BI用户授权同义词权限:

          

        8、使用BI用户连接数据库:

          此时查询发现还是不可以!!!

          

        9、在BI用户下创建同义词视图:

          

        10、BI用户下直接查询视图名称则可以查询

          

        11、但是登陆BI用户,则在视图列表里看不到任何视图,如何能够查询并且登陆用户也能看到该视图?

        

         

      

  • 相关阅读:
    促仅开发者间交流与合作的胡思乱想
    Unity3D音乐音效研究-MIDI与波表
    剑英陪你玩转图形学 (二)彩虹
    java mail实现Email的发送,完整代码
    linux 下 安装 rpm 格式 的 mysql
    ExtJs3带条件的分页查询的实现
    查看linux的版本信息
    java 非法字符过滤 , 半角/全角替换
    MySQL数据库错误server_errno=2013的解决
    MySQL数据库双机热备份
  • 原文地址:https://www.cnblogs.com/cainiaoputeng/p/11090497.html
Copyright © 2011-2022 走看看