暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

一些DB2的问题(转)

ibm软件技术联盟 2015-08-19
560

1、在DB2的CLP环境下,什么命令可以判断某个实例是否已经启动啊?

C:\Program Files\IBM\SQLLIB\BIN>db2gcf -s

DB2 State : Available

C:\Program Files\IBM\SQLLIB\BIN>
C:\Program Files\IBM\SQLLIB\BIN>
C:\Program Files\IBM\SQLLIB\BIN>
C:\Program Files\IBM\SQLLIB\BIN>db2gcf -s

DB2 State : Operable


2、在DB2的CLP环境下,什么命令可以查看当前数据库中的所有模式呀?

db2 select distinct creator from sysibm.systables
db2 select distinct tabschema from syscat.tables
db2 select schemaname from syscat.schemata

前面两条SQL得出来的schema数量一致,第三条SQL的结果更多一点,差别可以实际体会一下


3、在DB2的CLP环境下,什么命令可以确定某个模式的属主---即某个scheme是归哪个用户所有啊?

模式的属主?一般应该没有这种说法,只有针对具体某个对象的属主这种说法,可以使用如下SQL查询一些信息:
db2 "select distinct tabschema,owner,tabname from syscat.tables"


4、在DB2的CLP环境下,什么命令可以查看某个表空间中的所有内容啊?

这里你指的是某个表空间上所有对象吧?具体的表空间上表的数据,肯定是select语句才能查到的。

表空间中有两类对象,一个是表,一个是索引。
要查某个表空间的对象,可以通过syscat.tables and syscat.indexes where tbspaceid = ? 查询。
在syscat.tables表中tbspaceid是负值,tbspace是null 所对应的table是分区表。

可以通过如下查询,看到某个tablespace上面的table的名字
db2 "select TABNAME from syscat.tables where tbspaceid=7"

可以通过如下查询,看到某个tablespace上面的index的名字
db2 "select INDNAME from syscat.indexes where tbspaceid=10"


5、在DB2的CLP环境下,什么命令可以获知当前的用户名啊?
db2的用户必须是操作系统的用户,db2连接数据库可以使用不同的用户来连接,包括instance 用户等

6、在DB2的CLP环境下,什么命令可以返回当前用户拥有权限的所有资源啊,比如,该用户有读权限的所有的表有哪些?
db2 get authorizations 老版本有这个命令, db2 v9.5以后就没有这个命令了
想了解更多可以查看下面网址,
http://www.ibm.com/developerwork ... e/dm-0601wasserman/

权限这块比较复杂,常用的视图如:
SYSCAT.TABAUTH
SYSCAT.TBSPACEAUTH
SYSCAT.DBAUTH
等,如果想要查看某个用户对某些对象的具体权限可以查询这些系统视图。

7、在DB2的CLP环境下,什么命令可以获知当前用户对某哪些资源拥有哪些权限呀?
参考上面的网址,需要注意不同版本的db2细节上面有些差异,需要再查询官方文档。

文章转载自ibm软件技术联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论