测试路上,温和的坚持着,并且微笑...... 测试路上,我正在为下一个目标努力着,已经有近两年测试工作经验的我,每每看到测试工程师的职场规划,让我深刻的感悟到,要想让自己热爱的测试道路越走越宽,需要实践与理论结合,用理论规范实践,使实践更专业化;信息化时代,更加需要资源共享,思想交流,而我所学也来源于互联网上的前辈们,兄弟姐妹们. 所以在这个繁忙的工作学习里,在这个不断给自己充电的时间里,将自己的所学,所得,所感用博客的方式展现给大家,感谢在测试路上帮助过我的人,也希望能给需要帮助的人尽点微薄之力......

Oracle批量赋权及批量建立同义词给其他用户 - - Oracle Tips 20

上一篇 / 下一篇  2008-08-22 21:09:18 / 个人分类:数据库相关

功能:两个用户,其中一个用户A 没有数据结构,实现通过用户A访问用户B的所有数据,只有读取数据的权限,看不到B用户数据结构,只能查询。

一、建立只读用户A:

-- Create the user
create user A
  identified by ""
  default tablespace LMIS
  temporary tablespace LMIS
  profile DEFAULT;


二、授予A相应的权限(在有DBA权限用户B下执行)
 
 grant create session to A;
 grant create synonym to A;

三、以拥有者B身份执行下面的语句(commit 窗口)
  set heading OFF;
  set feedback OFF;
  SPOOL c:\temp\A.SQL;                             --放文件的路径
  SELECT 'create synonym '||tname||' for B.'||tname||';' FROM TAB;
  SPOOL OFF;

四、转变为被赋权用户A的身份,执行

    @c:\temp\A.SQL

五、赋予用户A权限(在B用户COMMIT窗口下执行)

set heading OFF;
set feedback OFF;
SPOOL c:\grantA.SQL;
    SELECT 'grant select,insert,update,delete,REFERENCES,INDEX on ' ||
           TNAME || ' to A;'
      FROM TAB WHERE TABTYPE <>'VIEW'
    UNION ALL
    SELECT 'grant select,insert,update,delete  on ' || OBJECT_NAME ||
           ' to A;'
      FROM USER_OBJECTS
     WHERE OBJECT_TYPE = 'VIEW'
    UNION ALL
    SELECT 'grant EXECUTE  on ' || OBJECT_NAME || ' to A;'
      FROM USER_OBJECTS
     WHERE OBJECT_TYPE = 'PROCEDURE'
    UNION ALL
    SELECT 'grant EXECUTE  on ' || OBJECT_NAME || ' to A;'
      FROM USER_OBJECTS
     WHERE OBJECT_TYPE = 'FUNCTION'
    UNION ALL
    SELECT 'grant select  on ' || OBJECT_NAME || ' to A;'
      FROM USER_OBJECTS
     WHERE OBJECT_TYPE = 'SEQUENCE';
    
 SPOOL OFF;

六、执行脚本

     @c:\grantA.SQL;


TAG: 数据库相关

 

评分:0

我来说两句

Open Toolbar