跟屌丝学DB2 第二课 建立数据库以及添加用户

在安装DB2 之后,就可以在 DB2 环境中创建自己的数据库。首先考虑数据库应该使用哪个实例。实例(instance) 提供一个由数据库管理配置(DBM CFG)文件控制的逻辑层,可以在这里将多个数据库分组在一起。DBM CFG 文件包含一组 DBM CFG 参数,可以使用它们对实例进行调优。在每个工作站上可以创建多个实例,在每个实例中可以创建多个数据库。
屌丝学习当然要创建屌丝实例
Windows先创建DB2实例的方法 
在Windows下,通过如下命令即可创建DB2实例:db2icrt instance_name

屌丝这个实例就创建
将屌丝这个实例添加进数据库中,如图

需要注意的是,instance_name必须按照如下的规则命令:

  1)不能大于 8 个字符

  2)不能 以"sql"、"ibm"或"sys"开头

  3)不能以数字开头或者包含 a-z、$、#、@、_ 或 0-9 之外的字符

  如:

以下是代码片段:
DB2BIN>db2icrt insttest

  DB20000I DB2ICRT命令成功完成。

  DB2BIN>db2ilist --列举服务器上存在的 DB2 实例

以下是代码片段:
    INSTTEST 
  D:DB2BIN>

  要删除一个实例,首先断开所有数据库连接,然后执行以下命令停止实例:

以下是代码片段:
db2idrop -f instance_name

  比如:

以下是代码片段:
DB2BIN>db2idrop -f insttest

  DB20000I DB2IDROP命令成功完成。

  DB2BIN>

  察看实例配置文件

  --默认

以下是代码片段:
DB2 GET DBM CFG

  --分屏显示

以下是代码片段:
DB2 GET DBM CFG | More

  --将显示结果存入 cfg.out 文件中

以下是代码片段:
DB2 GET DBM CFG > cfg.out

 
接下来 给位屌丝DB就要创建数据库了  记住有2种方式创建 第一种 就是用control center

如下所示,在创建数据库时要考虑几个因素。有几种创建数据库的方法。可以使用从 Control Center 调用的 Create Database 向导,它会引导用户分步创建数据库。如果您了解实际的 Create Database 命令的话,还可以从 DB2 Command Window、Command Editor 或命令行直接发出命令。

 在这个示例中,从 DB2 First Steps Launch 面板的 Create Database 向导:

  1、启动 DB2 Control Center。点击 Start > All PRograms > IBM DB2 > General Administration Tools 并选择 Control Center。当提示选择 Control Center 视图时,点击 OK 选择默认视图(Advanced)。

  2、点击 All Databases(如图 5 所示),然后点击 Create New Database。Create Your Own Database 向导打开。

  从 Control Center 创建新数据库

在 Create Your Own Database 向导中,指定数据库名和数据库目录的位置。输入 HelloWld 作为数据库名。指定 C:\ 作为默认路径。输入 hwld 作为数据库别名。在 Comment 字段中输入任何描述性的注释。

  4、选中 Enable Database for xml。XML 列只能在 UTF-8 代码集(Unicode)数据库中使用。所以要在数据库中使用 XML,就必须创建 Unicode 数据库。

  5、不需要指定任何其他数据库选项,所以选择 Summary 面板,然后点击 Show Command 来查看创建这个数据库所用的 DB2 命令。

  6、因为在这个数据库中启用了 XML,所以使用 CODESET UTF-8。点击 Close。如果想将命令保存到文件中,供以后参考或重用,那么点击 Save 而不是 Close。

  7、在 Create New Database 窗口中,点击 Finish 并等待向导完成操作。

在 DB2 创建数据库时,它还创建以下东西:

  1、在指定的驱动器或路径上创建必要的数据库目录

  2、创建一组默认的表空间,包括 SYSCAT、TEMPORARY 和 USER 表空间

  3、在编目表空间中创建一组系统编目表和视图

  4、创建数据库配置(DB CFG)文件并设置默认值

  5、为数据库恢复日志文件创建空间并分配它

  6、为数据库(如 CLI)和命令行处理器创建的几个应用程序

 使用 DB2 Control Center 检查创建的数据库

  在 Control Center 左边的面板中,找到并展开 All Systems 和 All Databases。看看是否能够找到刚才创建的 HELLOWLD 数据库。All Systems 提供了数据库对象视图,这些对象依次根据机器、实例和数据库进行分组。在这个机器上只有一个实例,DB2。All Databases 提供了这个机器上的所有数据库的快速查看。

  图 6. 查看新数据库

  

  如果您了解创建数据库所用的 DB2 命令,那么可以使用在前面的 Create New Database 向导窗口中保存的 CREATE DATABASE 命令并根据需要进行修改,然后从 DB2 命令行处理器发出 CREATE DATABASE 命令来创建数据库。

  选择 Start > Run,输入 db2cmd 并按 Enter。打开 DB2 命令行处理器窗口。要想获得 create database 命令的帮助,可以在命令行窗口中输入 db2 ? create database。

  输入 db2 CREATE DATABASE MYTESTDB ON C:。在命令成功完成之后,点击 Control Center 主菜单中的 Selected 并点击 Refresh。然后看看是否能够在 Control Center 中找到新的数据库 MYTESTDB。

  在 DB2 命令窗口中输入命令 db2 LIST DATABASE DIRECTORY。应该会看到 HELLOWLD 和 MYTESTDB 数据库的数据库项。
第二种 用命令创建;

db2 CREATE DATABASE diaosi ON C: USING CODESET UTF8 TERRITORY CN COLLATE USING SYSTEM

territory cn 是数据库的语言环境   

USING CODESET UTF8 指的是数据库用utf8字符 

为DB2数据库创建新用户帐户并为其分配特定特权  

目标

到目前为止,一直使用实例管理员帐户(SYSADM)来执行所有数据库命令。这个帐户对所有实用程序、数据和数据库对象具有完全访问权。因此,为了避免无意或有意的数据损失,必须要保护这个帐户。在大多数情况下,需要创建不同的用户和/或组,并授予有限的权限集。在本次实验中,将创建一个新的用户帐户,然后为它分配特定的特权。

步骤

1.通过控制面板打开“管理”菜单项,打开“计算机管理”控制台。

2.在窗口左边的面板中,展开“系统工具”,然后展开“本地用户和组”文件夹。右击 “用户”文件夹并选择“新建用户”菜单项。

图 1. 打开计算机管理中用户管理

3.在“用户”对话框中,输入以下信息(另外参见下图)。在“用户名”框中,输入 customer。在“全名”框中,输入 Customer1。在“描述”框中,输入 A typical bookstore customer。在 “密码” 和 “确认密码” 框中,输入 ibmdb2admin。取消 “用户下次登录时须修改密码”选项。最后,单击“创建”按钮创建新用户。

图 2. 创建一个新用户

4.确保使用 Control Center (控制中心) 的高级视图。切换到高级视图的方法是,从 Control Center (控制中心) Tools 菜单中选择 Customize Control Center (控制中心) 菜单项,选择 Advanced (高级) 选项并单击“确定”按钮。

图 3. 打开控制中心高级视图

 

5.在 Control Center (控制中心) 左边面板中的对象树中,依次展开所有数据库> EXPRESS > Tables。

6.将所需的特权授予刚才创建的用户。在 EXPRESS 数据库的表列表中,右键单击 CUSTOMERS 表并选择 “特权” 菜单项,这时会显示 “表特权” 对话框。

图 4. 打开特权菜单项

 

7.单击“添加用户”按钮并选择刚才创建的 customer 用户。单击 “确定”按钮关闭 “添加用户” 对话框。

图 5. 给表添加用户

 

8.您会注意到,customer 用户已经添加到用户列表中了,但是还没有分配特权。为了授予这个用户 SELECT、INSERT、UPDATE 和 DELETE 特权,将所有下拉框改为 Yes。因特网客户应该能够查看/添加/更新/删除他们的帐户数据。我们不授予这个用户其他权限,因为他们不需要那些权限。单击 “确定” 按钮关闭 “表特权” 对话框并接受所做的修改。

图 6. 授予用户权限

 

9.对于 BOOKS 和 SALES 表重复第 6-8 步。对于 BOOKS 表,只授予 SELECT 特权,因为不应该允许客户修改商店的库存数据。对于 SALES 表,只授予 SELECT 和 INSERT 特权。客户不应该有 DELETE 或 UPDATE 特权,因为只有商店职员应该有权修改销售数据。

10.使用上面创建的用户 ID 连接数据库。尝试从 CUSTOMERS 表中选择数据,会发生什么情况?尝试删除或更新 SALES 表中的数据,会发生什么情况?

在本次实验中,我们只创建了一个用户;但是,实际的应用程序可能包含许多不同类型的用户。请您自己试着创建其他用户并授予他们特权。还可以创建用户组并向组授予特权,这样就不必向每个用户分别授予特权。

转帖者注:

    创建完新用户后,在使用该新用户身份进行JDBC连接时需要注意SQL语句的写法。比如:当初创建数据库时使用的是Administer用户身份。现在在该数据中增加了用户——customer,那么在使用customer身份连接数据库后的所有SQL语句均要求在表名前增加原数据库表的创建者。

例如,SELECT * FROM Administer.TableName ; (注意红色部分)不能写成SELECT * FROM TableName ,否则会发生

42704错误:

SQLException information
Error msg: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=ADMIN.CONTACT, DRIVER=3.50.152
SQLSTATE: 42704
Error code: -204
com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=ADMIN.CONTACT, DRIVER=3.50.152
at com.ibm.db2.jcc.b.wc.a(wc.java:579)
at com.ibm.db2.jcc.b.wc.a(wc.java:57)
at com.ibm.db2.jcc.b.wc.a(wc.java:126)
at com.ibm.db2.jcc.b.tk.c(tk.java:1901)
at com.ibm.db2.jcc.b.tk.d(tk.java:1889)
at com.ibm.db2.jcc.b.tk.a(tk.java:1416)
at com.ibm.db2.jcc.t4.db.g(db.java:138)
at com.ibm.db2.jcc.t4.db.a(db.java:38)
at com.ibm.db2.jcc.t4.t.a(t.java:32)
at com.ibm.db2.jcc.t4.sb.h(sb.java:141)
at com.ibm.db2.jcc.b.tk.N(tk.java:1387)
at com.ibm.db2.jcc.b.tk.a(tk.java:2215)
at com.ibm.db2.jcc.b.tk.a(tk.java:557)
at com.ibm.db2.jcc.b.tk.executeQuery(tk.java:541)
at com.EzJava.main(EzJava.java:45)
Error msg: DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-204;42704;ADMIN.CONTACT, DRIVER=3.50.152
SQLSTATE: 56098
Error code: -727
com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-727, SQLSTATE=56098, SQLERRMC=2;-204;42704;ADMIN.CONTACT, DRIVER=3.50.152
at com.ibm.db2.jcc.b.wc.a(wc.java:55)
at com.ibm.db2.jcc.b.wc.a(wc.java:126)
at com.ibm.db2.jcc.b.tk.c(tk.java:1901)
at com.ibm.db2.jcc.b.tk.a(tk.java:1443)
at com.ibm.db2.jcc.t4.db.n(db.java:739)
at com.ibm.db2.jcc.t4.db.i(db.java:257)
at com.ibm.db2.jcc.t4.db.c(db.java:52)
at com.ibm.db2.jcc.t4.t.c(t.java:44)
at com.ibm.db2.jcc.t4.sb.i(sb.java:153)
at com.ibm.db2.jcc.b.tk.P(tk.java:1438)
at com.ibm.db2.jcc.b.tk.a(tk.java:2217)
at com.ibm.db2.jcc.b.tk.a(tk.java:557)
at com.ibm.db2.jcc.b.tk.executeQuery(tk.java:541)
at com.EzJava.main(EzJava.java:45)

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-15 08:02:55

跟屌丝学DB2 第二课 建立数据库以及添加用户的相关文章

studio-Visual Studio 建立数据库时启动用户实例进失败。。

问题描述 Visual Studio 建立数据库时启动用户实例进失败.. 解决方案 是不是你给的用户名和密码错误,你仔细看看,在一个就是Windows服务里你是不是把相关服务给禁止了! 解决方案二: 我用mfv连的时候也遇到过这种情况,后来我把连接字符串写死 就行了 再写活就好了 我也不知道是怎么回事儿

跟屌丝大哥学DB2-第四课 数据类型 ,表 ,视图,索引,模式,约束(一)

(DiaoSiID)在我们建立表前 ,我们先要了解DB2中都有哪些数据类型,以便我们这些屌丝以后快速创建表. DB2 提供了一套丰富且灵活的数据类型.DB2 附带 INTEGER.CHAR 和 DATE 等基本数据类型.它还提供了创建用户定义的数据类型(UDT)的工具,使用户能够创建复杂的非传统的数据类型,从而适应当今复杂的编程环境.在给定的情况下,选用哪种数据类型取决于列中存储的信息的类型和范围. 内置的数据类型分为四类:数字.字符串.日期时间和 XML. 用户定义的数据类型分为:单值类型.结

Asp.Net Web API 2第二课——CRUD操作

原文:Asp.Net Web API 2第二课--CRUD操作 Asp.Net Web API 导航   Asp.Net Web API第一课--入门http://www.cnblogs.com/aehyok/p/3432158.html 前言 CRUD代表着 Create.Read.Update.Delete,这是四个基本的数据库操作.许多HTTP服务模型也通过Rest或者Rest-like APIs实现CRUD操作.       在本教程中,我将建立一个非常简单的Web API来管理一个产品

android中傻瓜式建立数据库及高效数据库操作代码的编写

初学者在学android的时候,看到书上的sqlite数据库编程怎么有点复杂. 初学阶段的难点: 建立数据库表字段(field)数据类型(text,interge)选择较多,考虑较多. 在activity中数据更新插入要考虑的约束条件好多 老是访问数据库的数据,每次都要在activity中声明一个cursor并且通过一大堆代码来获取cursor感觉有点繁琐. 对于上述的难点解决方式如下 1.数据类型都用text(除了id编号) 2.在activity中无论插入或更新都只用DB文件中同一个函数实现

10天学安卓-第二天

原文:10天学安卓-第二天 继续我们的学习. 相信我,第一天的工作是最为重要的,通过这些工作,我们把开发安卓所必须的环境.基础条件都配置好了,相信肯定遇到了很多问题,不过,根据我的经验,您会很快解决这些问题的.在第一天的最后,我们终于运行了第一个应用->"Hello, world". 理论知识 下面我们学习一些理论知识,了解一下安卓系统的架构.组件,有了一些基础知识,才不会感觉迷惑. 先看下整个项目的目录,每个目录都有特定的作用,分别如下: src目录,存放源代码文件. gen目

JavaScript进阶教程(第二课)第1/3页_基础知识

今天我们将学习一项很有用而且很有趣的内容:cookies - 这是用来记录访问过你的网页的人的信息.利用Cookies你能记录访问者的姓名,并且在该访问者再次访问你的站点时向他发出热情的欢迎信息.你还可以利用cookie记忆用户端的特点 - 如果访问者的所接入的网线的速度慢,cookie可以自动告诉你在给其发送网页的时候只发送尽可能少的图片内容.     只要你在合理的范围内使用cookies(不要用它探询用户的个人隐私),cookies还是相当实用得.所以我要向你们介绍cookies的工作原理

javascript asp教程第二课--转义字符_ASP基础

并非是题外话:我们在第二课中要讲到的"转义字符"看起来与我们的课程并没有关系.事实并非如此.转义字符是在 asp中使用javascript的一个完整部分.而第二课要讲的恰恰就是转义字符.没有转义字符,那么你为了 写出有效率的asp脚本将会遇到许多的困难.抱歉,下面进入正题:以下是第二课的asp脚本.还记不记得在第一课的列子中,我们怎样编写了一个html输出都在同一行的代码.转义字符允许我们增加 换行符号.下面是我们上边例子在客户端html输出页面的代码:换行符:我又在下面重新打了一行a

ASP编程入门进阶(廿一):DAO SQL之建立数据库表

编程|数据|数据库 你是否为自己设计的数据库感到满足了呢?你确信就不要对其再处理?比如新建立数据库表,比如建立或者修改某个字段--当然这些都属于设计数据库之列. 那么,你正常的操作又是不是下载数据库到本机,然后打开之进行修改,接着再上传上去?十有八九都是如此-_-! 现在,你可以接触下有关于此的信息了,毕竟代码的功能是为手动的操作省了不少时间.不过代码的生成也还不是手工?呵呵:) 1,建立数据库文件cnbruce.mdb(不设计任何表) 建立数据库的代码: <% Option Explicit

建立数据库链接

链接|数据|数据库 建立数据库链接CREATE [public] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '数据库连接字符串';说明:    1.一般情况PUBLIC由数据库管理员来创建:个人用户可以不加public,是私有的数据库链接:    2.'数据库连接字符串'可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义:    3.在配置文件init.ora中,数据库参数global_na