• 在oracle中创建一个只读用户的步骤(创建/授权/同义词等)


    在实际生产中有这样的需求:

    业务用户A有比较大的权限,外部访问数据库,如果通过A,安全隐患较多,所以需要创建一个用户B,B只能查询A拥有的表或视图等对象,无法  insert/update/delete

    1.创建用户B

    create user userB identified by "userB " default tablespace tbs1 temporary tablespace tbs1_temp profile DEFAULT;

     

    2.授权

    grant connect to userB;                                   --连接权限

    grant CREATE SESSION to userB;                 --创建会话权限

    grant CREATE SYNONYM to userB;               --创建同义词权限

    grant select any table to userB;                       --可以查询任何表

    --revoke SELECT ANY TABLE from userB;     --回收权限

    还有一种授权方式:授予某个用户的某个表的 select/insert/update 权限

    grant select on userA.t_bd_customer to userB;
    grant insert on userA.t_bd_customer to userB;
    grant update on userA.t_bd_customer to userB;

    查看某个用户拥有哪个表的哪些权限:

    记住这个表:all_tab_privs 

    select * from all_tab_privs where GRANTEE='USERB';

    3.创建同义词,不创建就不能直接通过单独的名词来查询

     create synonym table1_sy for userA.table1;

    附:批量创建同义词的脚

    select 'create or replace synonym '||object_name||' for '||owner||'.'||object_name||';' from dba_objects
    where owner in ('USERA') and object_type='TABLE';

     

     

  • 相关阅读:
    POJ:3126-Prime Path
    Linux用户操作及权限
    Web前段开发人员须知的常见浏览器兼容性问题及解决技巧
    windows激活
    未来十年最具有潜力的行业
    WebStorm激活码存储
    5种关系型数据库
    linux常用命令总结
    进程、线程、多线程的总结
    C++类库
  • 原文地址:https://www.cnblogs.com/hshuai/p/15896748.html
Copyright © 2020-2023  润新知