Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1925769
  • 博文数量: 389
  • 博客积分: 7877
  • 博客等级: 少将
  • 技术积分: 4521
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-10 14:02
文章分类

全部博文(389)

文章存档

2024年(1)

2022年(1)

2021年(1)

2020年(1)

2019年(1)

2018年(3)

2017年(6)

2016年(4)

2015年(8)

2014年(15)

2013年(31)

2012年(19)

2011年(47)

2010年(33)

2009年(105)

2008年(109)

2007年(4)

分类: DB2/Informix

2014-02-12 20:58:09

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/developerworks/cn/data/library/techarticle/dm-0601wasserman/

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

7、在DB2的CLP环境下,什么命令可以获知当前用户对某哪些资源拥有哪些权限呀?
参考上面的网址,需要注意不同版本的db2细节上面有些差异,需要再查询官方文档。
阅读(4616) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~