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

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

Windows先创建DB2实例的方法在Windows下,通过如下命令即可创建DB2实例:db2icrt instance_name

%E6%9C%AA%E5%91%BD%E5%90%8D.jpg屌丝这个实例就创建将屌丝这个实例添加进数据库中,如图

%E6%9C%AA%E5%91%BD%E5%90%8D11.jpg

%E6%9C%AA%E5%91%BD%E5%90%8D11.jpg

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

1)不能大于 8 个字符

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

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

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

DB20000I DB2ICRT命令成功完成。

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

以下是代码片段:INSTTESTD: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 创建新数据库

3ba2833nji15.jpg

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

4、选中 Enable Database forxml。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. 查看新数据库

5c0745z87wc9.jpg

如果您了解创建数据库所用的 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. 打开计算机管理中用户管理

33ae3d541b2dbcc49e9d1280cc3d81c0.png

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

图 2. 创建一个新用户

e90f977400ee77255dfa18bed0362780.png

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

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

d367aacdf518fe9f27887c15c7498013.png

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

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

图 4. 打开特权菜单项

1dfcee773fbaabc9389b8b544a9f4a10.png

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

图 5. 给表添加用户

912f9ab8f15d2850c6b4b3be7167bbe4.png

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

图 6. 授予用户权限

b7bec5a3cc88287a58e3d9bbbadc5bc2.png

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)

posted on 2012-12-05 18:30 顺其自然EVO 阅读(7121) 评论(0)  编辑  收藏 所属分类: DB2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值