设为首页 收藏本站
查看: 855|回复: 0

[经验分享] DB2个人总结

[复制链接]

尚未签到

发表于 2016-11-13 01:53:04 | 显示全部楼层 |阅读模式
  DB2身份验证
  在数据库管理程序配置(DBM CFG)文件中使用 AUTHENTICATION 参数设置身份验证, DBM CFG 文件是一个实例级配置文件。因此,AUTHENTICATION 参数影响这个实例中的所有数据库。参数修改完毕需要重新启动实例。
  get dbm cfg
  Server Connection Authentication (SRVCON_AUTH) = KERBEROS
  Database manager authentication (AUTHENTICATION) = SERVER_ENCRYPT 类型 描述
  ---------------------
  SERVER                    身份验证在服务器上进行。
SERVER_ENCRYPT    身份验证在服务器上进行。密码在客户机上进行加密,然后再发送到服务器。
CLIENT                     身份验证在客户机上进行(例外情况见 处理不可信的客户机)。
  DB2授权
  在 DB2 可用的 5 种权限中,SYSADM、SYSCTRL 和 SYSMAINT 是实例级权限,这些权限只能分配给组;
  可以通过 DBM CFG 文件分配这些权限,不能通过grant语句来授权。
  针对特定数据库的 DBADM 和 LOAD 权限可以分配给用户或用户组。可以使用 GRANT 命令显式地分配这些权限。 
  ----------------------
  SYSADM权限:
  DB2 中的 SYSADM 权限就像是 UNIX 上的根权限,可以使用这个实例、数据库、对象的任何DB2命令,只允许 SYSADM 用户更新 DBM CFG 文件。SYSADM 权限由 DBM CFG 文件中的 SYSADM_GROUP 参数控制。在 Windows 上,在创建实例时,这个参数设置为 Administrator(但是,如果发出命令 db2 get dbm cfg,它看起来是空的)。在 UNIX 上,它设置为创建这个实例的用户的主组。
  SYSCTRL权限:
  拥有 SYSCTRL 权限的用户可以在实例中执行所有管理和维护命令。但是,与 SYSADM 用户不同,他们不能访问数据库中的任何数据,除非他们被授予了访问数据所需的特权。SYSCTRL 用户可以对实例中的任何数据库执行的命令示例如下:
 db2start/db2stop
 db2 create/drop database
 db2 create/drop tablespace
 db2 backup/restore/rollforward database
 db2 runstats(针对任何表)
 db2 update db cfg for database dbname
  SYSMAINT权限:
  拥有 SYSMAINT 权限的用户可以发出的命令是拥有 SYSCTRL 权限的用户可以发出的命令的子集。SYSMAINT 用户只能执行与维护相关的任务,比如:
 db2start/db2stop
 db2 backup/restore/rollforward database
 db2 runstats(针对任何表)
 db2 update db cfg for database dbname
注意,拥有 SYSMAINT 权限的用户不能创建或删除数据库或表空间。他们也不能访问数据库中的任何数据,除非他们被显式地授予访问数据所需的特权。
  DBADM 权限:
  数据库级权限,而不是实例级权限。DBADM 用户对一个数据库有几乎完全的控制能力。DBADM 用户不能执行某些维护或管理任务,比如:
 drop database
 drop/create tablespace
 backup/restore database
 update db cfg for database db name
但是,他们可以执行以下任务:
 db2 create/drop table
 db2 grant/revoke(任何特权)
 db2 runstats(任何表)
DBADM 用户还被自动地授予对数据库对象及其内容的所有特权。因为 DBADM 权限是一个数据库级权限,所以它可以被分配给用户和用户组。以下命令演示授予 DBADM 权限的不同方法。 db2 grant DBADM on database „ 用grant语句向用户授权
  DB2体系结构
  数据库包含许多物理对象和逻辑对象:
-------------------------------
   表、视图、索引、模式
 锁、触发器、存储过程、包
 缓冲池、日志文件、表空间
  
  数据库存储模型
  --------------------------------
  DB
  partition groups
  Tablespaces
  Containers
  表空间的区分:
  -----------------------------------
  系统管理的空间(System-Managed Space,SMS):在这里,由操作系统的文件系统管理器分配和管理空间。在 DB2 9 之前,如果不带任何参数创建数据库或表空间,就会导致所有表空间作为 SMS 对象创建。
  数据库管理的空间(Database-Managed Space,DMS):在这里,由数据库管理程序控制存储空间。这种表空间本质上是一种特殊用途的文件系统实现,可以最好地满足数据库管理程序的需要。
DMS 的自动存储(Automatic Storage With DMS):自动存储实际上不是一种单独的表空间类型,而是一种处理 DMS 存储的不同方式。
  数据库的创建:
  DB2默认表空间:
  ------------------------------------
  在创建数据库时,DB2 会创建许多文件,包括日志文件、配置信息、历史文件和三个表空间。这些表空间是:
SYSCATSPACE:这是保存 DB2 系统编目的地方,系统编目跟踪与 DB2 对象相关联的所有元数据。
TEMPSPACE1:DB2 用来放置中间结果的临时工作区域。
USERSPACE1:默认情况下存放所有用户对象(表、索引)的地方。
  DB2穿件创建数据库实例:
  -------------------------------------------------
  ( 1) CREATE DATABASE MY1STDB
  ( 2) DFT_EXTENT_SZ 4
  ( 3) CATALOG TABLESPACE MANAGED BY DATABASE USING
  ( 4) (FILE 'C:\CAT\CATALOG.DAT' 2000, FILE 'D:\CAT\CATALOG.DAT' 2000)
  ( 5) EXTENTSIZE 8
  ( 6) PREFETCHSIZE 16
  ( 7) TEMPORARY TABLESPACE MANAGED BY SYSTEM USING
  ( 8) ('C:\TEMPTS','D:\TEMPTS')
  ( 9) USER TABLESPACE MANAGED BY DATABASE USING
  (10) (FILE 'C:\TS\USERTS.DAT' 121)
  (11) EXTENTSIZE 24 (12) PREFETCHSIZE 48
  --------------------------------------
  我们来详细地看看每一行:
1. CREATE DATABASE:这个语句定义要创建的数据库的名称。
2. DFT_EXTENT_SZ 4:这个参数告诉 DB2 默认的区段大小是 4 个页面,除非在其他地方显式地声明。
3. CATALOG TABLEPSACE MANAGED BY DATABASE USING:DB2 编目空间将由数据库管理。
  4. FILE 'C:\....':表空间的位置将跨两个文件,每个文件有 2,000 个页面的空间。
5. EXTENTSIZE 8:EXTENTSIZE 是 8 个页面。
6. PREFETCHSIZE 16:在查询处理期间,同时读取 16 个页面。
7. TEMPORARY TABLESPACE MANAGED BY SYSTEM USING:DB2 使用的临时空间将由操作系统处理。
8. 'C:\TEMPTS' ...:临时空间将跨两个文件,文件的大小在 DB2 执行期间自动地调整。
9. USER TABLESPACE MANAGED BY DATABASE USING:用户空间(放置真正的表的地方)将由 DB2 直接管理。
10. FILE 'C:\TS\...':这个空间只有一个容器,它由 121 个页面组成。
11. EXTENTSIZE 24:USER 表空间的 EXTENTSIZE 是 24 个页面。
12. PREFETCHSIZE 48:查询将同时预获取 48 个页面。
  表空间由区段(extent)组成,也就是说区段是表空间的容器的一个空间单元;区段又由页面组成;表数据都放置在页面上(除了 LOB 和 long varchar 之外)。
  约束性:
  主表和附表的关系,可以指定四个规则:RESTRICT、NO ACTION、CASCADE 和 SET NULL。
 如果指定了 RESTRICT 或 NO ACTION,那么 DB2 不允许删除父行。必须首先删除从属表中的行才能删除父表中的行。这条规则是默认设置。
 如果指定了 CASCADE,那么从父表中删除行时还会自动地删除所有从属表中的从属行。
 果指定了 SET NULL,那么从父表中删除父行时从属行中的外键值被设置为空(如果可以为空的话)
  视图:
CREATE VIEW NONFICTIONBOOKS AS SELECT * FROM BOOKS WHERE BOOKTYPE = 'N' WITH CHECK OPTION 这个视图限制用户只能看到BOOKTYPE=’N’的书;
  另外,它还防止用户插入 BOOKTYPE 列的值不为 N 的行,并防止把现有行中 BOOKTYPE 列的值更新为 N 以外的值。例如,下列语句将不再允许使用: INSERT INTO NONFICTIONBOOKS VALUES (...,'F'); UPDATE NONFICTIONBOOKS SET BOOKTYPE = 'F' WHERE BOOKID = 111
  
索引:
CREATE INDEX idx_policyno ON iacmain (policyno) 在默认情况下,索引按升序创建。
  CREATE INDEX policyno1 ON iacmain (policyno DESC, companycode ASC)
  双向索引 CREATE INDEX policyno2 ON iacmain (paidpremium) ALLOW REVERSE SCANS
  当查询时,索引会自动引入

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299335-1-1.html 上篇帖子: DB2 学习笔记 下篇帖子: db2 1585错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表