仙道彰
作者仙道彰·2017-09-21 10:36
数据库开发工程师·花旗集团

DB2将数据库内的所有表(视图)权限授予用户

字数 1283阅读 894评论 0赞 2

背景:

客户A要求对数据库SAMPLE内的所有表和试图都要有访问权限;

1.连接到数据库SAMPLE :

  db2 connect  to sample 

2.将数据的连接权限授予用户A:

 db2 "grant connect on database to user A "

3.生成动态所有表和试图的授权SQL并运行:

db2 -x "select 'grant select on table ' || rtrim(tabschema) || '.' || rtrim(tabname) || ' to user A ; ' from syscat.tables where tabschema = 'DB2INST1' and (type = 'T' or type = 'V')" | db2 +p -tv

注:这里只是将该库内的所有表和视图的 select 权限授予了用户,如果需要将 update, insert,delete 权限授予用户只需要将select 改成对应的权限就可以了;

DB2中db2命令参数说明

-a    显示 SQLCA                                OFF
-c    自动落实                                      ON
-d    检索并显示 XML 声明                  OFF
-e    显示 SQLCODE/SQLSTATE        OFF
-f     读取输入文件                               OFF
-i     显示 XML 数据并带有缩进            OFF
-l     将命令记录到历史记录文件中       OFF
-m   显示受影响的行数                        OFF
-n    除去换行字符                               OFF
-o    显示输出                                      ON
-p    显示 db2 交互式提示符                ON
-q    保留空格和换行符                        OFF
-r    将输出报告保存到文件                  OFF
-s    在命令出错时停止执行                  OFF
-t    设置语句终止字符                          OFF
-v    回传当前命令                                OFF
-w   显示 FETCH/SELECT 警告消息    ON
-x    不打印列标题                                OFF
-z    将所有输出保存到输出文件           OFF 

声明:版权所有非经授权请勿做任何商业用途,仅限技术交流!

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广