设为首页 加入收藏

TOP

oracle数据库用户之间授权
2019-09-17 17:09:38 】 浏览:20
Tags: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用户,则在视图列表里看不到任何视图,如何能够查询并且登陆用户也能看到该视图?

 

    

 

     

  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux上安装mysql5.7 下一篇联合查询(姑且称之为联合查询)的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目