使用shell脚本生成只读权限的sql脚本(r2第28天)

目前做数据迁移,有8套不同的环境,为了保护环境,每个环境中的表,视图等开发都不能修改,只能通过连接用户去查询。 每个环境中可能含有表,索引,序列,存储过程,函数等,所以一个一个写是不现实的,写了下面的动态脚本来自动生成相应的权限,然后创建对应的同义词。 脚本会生成两个sql脚本,一个是owner用户赋予权限使用的,另外一个脚本是connect用户使用的,创建了对应的同义词。 source_schema=$1 conn_schema=$2 sqlplus -s xxx/xx <<EOF set feedback off set pages 0 set linesize 150 spool owner_${source_schema}_grant.sql select 'grant select on ${source_schema}.'||object_name||' to '||' ${conn_schema};' from all_objects where object_type in ('TABLE','TABLE PARTITION','VIEW','SEQUENCE') and owner=upper('$source_schema') group by 'grant select on ${source_schema}.'||object_name||' to '||' ${conn_schema};' ; select 'grant execute on ${source_schema}.'||object_name||' to '||' ${conn_schema};' from all_objects where object_type in ('PROCEDURE','FUNCTION','PACKAGE') and owner=upper('$source_schema') group by 'grant execute on ${source_schema}.'||object_name||' to '||' ${conn_schema};'; spool off; spool conn_${conn_schema}_syn.sql select 'create synonym ${conn_schema}.'||object_name||' for '||' ${source_schema}.'||object_name||';' from all_objects where object_type in ('TABLE','TABLE PARTITION','VIEW','SEQUENCE','PROCEDURE','FUNCTION','PACKAGE') and owner=upper('$source_schema') group by 'create synonym ${conn_schema}.'||object_name||' for '||' ${source_schema}.'||object_name||';'; spool off; EOF exit 运行结果如下: grant select on cnvdbo8.aaaa to cnvdbc8; grant select on cnvdbo8.bbbb to cnvdbc8; grant select on cnvdbo8.cccc to cnvdbc8; grant execute on cnvdbo8.dddd to cnvdbc8; grant execute on cnvdbo8.eeee to cnvdbc8; grant execute on cnvdbo8.ffff to cnvdbc8; create synonym cnvdbc8.aaaa for cnvdbo8.aaaa; create synonym cnvdbc8.bbbb for cnvdbo8.bbbb; create synonym cnvdbc8.cccc for cnvdbo8.cccc;

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿

Mssql高级注入笔记

暴库特殊技巧::%5c='\' 或者把/和\ 修改%5提交 and 0<>(select count(*) from master.dbo.sysdatabas...

3497
来自专栏沈唁志

WordPress添加随便看看

1243
来自专栏破晓之歌

Python接入mysql数据库 原

右侧有个database,点开后左上角有个“+”符号,选择Data Source-Mysql

511
来自专栏Albert陈凯

Hadoop数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)离线数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)

离线数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过) Hive服务介绍 Hive默认提供的cli(shell)服务,如果需要启动...

3117
来自专栏Golang语言社区

【Go 语言社区】Go实现个留言本

一、分析 要实现这个下面是几个重要的东西。 1.数据库操作(go怎么操作数据库)、 2.输出js,css,图片等 3.html显示 ...

3429
来自专栏我的博客

Sqlite使用说明

安装apt-get install slqite .databases List names and files of attached databases(列...

2904
来自专栏java一日一条

MySQL处理数据库和表的常用命令

学习如何管理和导航MySQL数据库和表是要掌握的首要任务之一,下面的内容将主要对MySQL的数据库和表的一些常用命令进行总结,一些我们不得不掌握的命令,一些信手...

493
来自专栏沃趣科技

配置表 | 全方位认识 sys 系统库

在上一篇《初相识 | 全方位认识 sys 系统库》中,我们针对sys 系统库做了一个不痛不痒的开端,是不是觉得太简单了?别急,本期我们将为大家带来系列第二篇《配...

943
来自专栏安全

phpMyAdmin 4.7.x CSRF 漏洞利用

phpMyAdmin是个知名MySQL/MariaDB在线管理工具,phpMyAdmin团队在4.7.7版本中修复了一个危害严重的CSRF漏洞(PMASA-20...

2137
来自专栏木头编程 - moTzxx

后台 配置页面功能设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

584

扫描关注云+社区