DB2个人总结

本文介绍了DB2数据库的身份验证机制、权限管理、体系结构及表空间管理等内容。重点讲解了SYSADM、SYSCTRL和SYSMAINT等权限的区别,以及DBADM权限的使用。此外,还介绍了如何创建数据库及表空间,并解释了系统管理的空间和数据库管理的空间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

当查询时,索引会自动引入

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值