欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle数据库用户之间授权

程序员文章站 2023-01-01 13:38:40
今天遇到一个数据库的问题: 系统数据库用户下创建了几个视图用于外部系统开发报表使用,当外部系统提取视图数据时,需要通过一个只能访问需要视图权限的用户,于是想到给他创建一个新的用户,并给这个用户分配只能访问这几个视图的权限。 DBA_SYS_PRIVS描述授予用户和角色的系统权限。 查看用户系统权限: ......

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

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

  1.   使用 oracle sql developer 客户端登陆数据库。
  2.   查看当前数据库用户权限:

 

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

  oracle数据库用户之间授权

   


 

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

   oracle数据库用户之间授权

 

  


 

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

   oracle数据库用户之间授权

   


 

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

    oracle数据库用户之间授权

 

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

     create user bi identified by 123;

    

    oracle数据库用户之间授权

    

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

      grant connect to bi;

    oracle数据库用户之间授权

    5、给bi用户授权

      grant resource to bi;

    oracle数据库用户之间授权

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

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

      查询视图发现提示表或视图不存在

      在视图前加上视图所有者用户名称则可以查询成功。 eg: select * from orcl.vw_staff;

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

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

    9、创建同义词视图:

    10、直接查询视图名称则可以查询

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