qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          跟屌絲學DB2 第二課 建立數(shù)據(jù)庫以及添加用戶

          在安裝DB2 之后,就可以在 DB2 環(huán)境中創(chuàng)建自己的數(shù)據(jù)庫。首先考慮數(shù)據(jù)庫應該使用哪個實例。實例(instance) 提供一個由數(shù)據(jù)庫管理配置(DBM CFG)文件控制的邏輯層,可以在這里將多個數(shù)據(jù)庫分組在一起。DBM CFG 文件包含一組 DBM CFG 參數(shù),可以使用它們對實例進行調(diào)優(yōu)。在每個工作站上可以創(chuàng)建多個實例,在每個實例中可以創(chuàng)建多個數(shù)據(jù)庫。
          屌絲學習當然要創(chuàng)建屌絲實例
          Windows先創(chuàng)建DB2實例的方法 
          在Windows下,通過如下命令即可創(chuàng)建DB2實例:db2icrt instance_name

          屌絲這個實例就創(chuàng)建
          將屌絲這個實例添加進數(shù)據(jù)庫中,如圖



          需要注意的是,instance_name必須按照如下的規(guī)則命令:

            1)不能大于 8 個字符

            2)不能 以"sql"、"ibm"或"sys"開頭

            3)不能以數(shù)字開頭或者包含 a-z、$、#、@、_ 或 0-9 之外的字符

            如:


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

            DB20000I DB2ICRT命令成功完成。

            DB2BIN>db2ilist --列舉服務器上存在的 DB2 實例

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

            要刪除一個實例,首先斷開所有數(shù)據(jù)庫連接,然后執(zhí)行以下命令停止實例:

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

            比如:

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

            DB20000I DB2IDROP命令成功完成。

            DB2BIN>

            察看實例配置文件

            --默認

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

            --分屏顯示

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

            --將顯示結(jié)果存入 cfg.out 文件中

          以下是代碼片段:
          DB2 GET DBM CFG > cfg.out
           
          接下來 給位屌絲DB就要創(chuàng)建數(shù)據(jù)庫了  記住有2種方式創(chuàng)建 第一種 就是用control center

          如下所示,在創(chuàng)建數(shù)據(jù)庫時要考慮幾個因素。有幾種創(chuàng)建數(shù)據(jù)庫的方法。可以使用從 Control Center 調(diào)用的 Create Database 向?qū)В鼤龑в脩舴植絼?chuàng)建數(shù)據(jù)庫。如果您了解實際的 Create Database 命令的話,還可以從 DB2 Command Window、Command Editor 或命令行直接發(fā)出命令。

           在這個示例中,從 DB2 First Steps Launch 面板的 Create Database 向?qū)В?/span>

            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 向?qū)Т蜷_。

            從 Control Center 創(chuàng)建新數(shù)據(jù)庫


          從 Control Center 創(chuàng)建新數(shù)據(jù)庫

          在 Create Your Own Database 向?qū)е校付〝?shù)據(jù)庫名和數(shù)據(jù)庫目錄的位置。輸入 HelloWld 作為數(shù)據(jù)庫名。指定 C:\ 作為默認路徑。輸入 hwld 作為數(shù)據(jù)庫別名。在 Comment 字段中輸入任何描述性的注釋。

            4、選中 Enable Database for xml。XML 列只能在 UTF-8 代碼集(Unicode)數(shù)據(jù)庫中使用。所以要在數(shù)據(jù)庫中使用 XML,就必須創(chuàng)建 Unicode 數(shù)據(jù)庫。

            5、不需要指定任何其他數(shù)據(jù)庫選項,所以選擇 Summary 面板,然后點擊 Show Command 來查看創(chuàng)建這個數(shù)據(jù)庫所用的 DB2 命令。

            6、因為在這個數(shù)據(jù)庫中啟用了 XML,所以使用 CODESET UTF-8。點擊 Close。如果想將命令保存到文件中,供以后參考或重用,那么點擊 Save 而不是 Close。

            7、在 Create New Database 窗口中,點擊 Finish 并等待向?qū)瓿刹僮鳌?/span>


          在 DB2 創(chuàng)建數(shù)據(jù)庫時,它還創(chuàng)建以下東西:

            1、在指定的驅(qū)動器或路徑上創(chuàng)建必要的數(shù)據(jù)庫目錄

            2、創(chuàng)建一組默認的表空間,包括 SYSCAT、TEMPORARY 和 USER 表空間

            3、在編目表空間中創(chuàng)建一組系統(tǒng)編目表和視圖

            4、創(chuàng)建數(shù)據(jù)庫配置(DB CFG)文件并設(shè)置默認值

            5、為數(shù)據(jù)庫恢復日志文件創(chuàng)建空間并分配它

            6、為數(shù)據(jù)庫(如 CLI)和命令行處理器創(chuàng)建的幾個應用程序


           使用 DB2 Control Center 檢查創(chuàng)建的數(shù)據(jù)庫

            在 Control Center 左邊的面板中,找到并展開 All Systems 和 All Databases。看看是否能夠找到剛才創(chuàng)建的 HELLOWLD 數(shù)據(jù)庫。All Systems 提供了數(shù)據(jù)庫對象視圖,這些對象依次根據(jù)機器、實例和數(shù)據(jù)庫進行分組。在這個機器上只有一個實例,DB2。All Databases 提供了這個機器上的所有數(shù)據(jù)庫的快速查看。

            圖 6. 查看新數(shù)據(jù)庫

            查看新數(shù)據(jù)庫

            如果您了解創(chuàng)建數(shù)據(jù)庫所用的 DB2 命令,那么可以使用在前面的 Create New Database 向?qū)Т翱谥斜4娴?CREATE DATABASE 命令并根據(jù)需要進行修改,然后從 DB2 命令行處理器發(fā)出 CREATE DATABASE 命令來創(chuàng)建數(shù)據(jù)庫。

            選擇 Start > Run,輸入 db2cmd 并按 Enter。打開 DB2 命令行處理器窗口。要想獲得 create database 命令的幫助,可以在命令行窗口中輸入 db2 ? create database。

            輸入 db2 CREATE DATABASE MYTESTDB ON C:。在命令成功完成之后,點擊 Control Center 主菜單中的 Selected 并點擊 Refresh。然后看看是否能夠在 Control Center 中找到新的數(shù)據(jù)庫 MYTESTDB。

            在 DB2 命令窗口中輸入命令 db2 LIST DATABASE DIRECTORY。應該會看到 HELLOWLD 和 MYTESTDB 數(shù)據(jù)庫的數(shù)據(jù)庫項。
          第二種 用命令創(chuàng)建;

          db2 CREATE DATABASE diaosi ON C: USING CODESET UTF8 TERRITORY CN COLLATE USING SYSTEM
          
          territory cn 是數(shù)據(jù)庫的語言環(huán)境   
          USING CODESET UTF8 指的是數(shù)據(jù)庫用utf8字符 

          為DB2數(shù)據(jù)庫創(chuàng)建新用戶帳戶并為其分配特定特權(quán)  

          目標

          到目前為止,一直使用實例管理員帳戶(SYSADM)來執(zhí)行所有數(shù)據(jù)庫命令。這個帳戶對所有實用程序、數(shù)據(jù)和數(shù)據(jù)庫對象具有完全訪問權(quán)。因此,為了避免無意或有意的數(shù)據(jù)損失,必須要保護這個帳戶。在大多數(shù)情況下,需要創(chuàng)建不同的用戶和/或組,并授予有限的權(quán)限集。在本次實驗中,將創(chuàng)建一個新的用戶帳戶,然后為它分配特定的特權(quán)。

          步驟

          1.通過控制面板打開“管理”菜單項,打開“計算機管理”控制臺。

          2.在窗口左邊的面板中,展開“系統(tǒng)工具”,然后展開“本地用戶和組”文件夾。右擊 “用戶”文件夾并選擇“新建用戶”菜單項。


          圖 1. 打開計算機管理中用戶管理


          打開計算機管理中用戶管理

          3.在“用戶”對話框中,輸入以下信息(另外參見下圖)。在“用戶名”框中,輸入 customer。在“全名”框中,輸入 Customer1。在“描述”框中,輸入 A typical bookstore customer。在 “密碼” 和 “確認密碼” 框中,輸入 ibmdb2admin。取消 “用戶下次登錄時須修改密碼”選項。最后,單擊“創(chuàng)建”按鈕創(chuàng)建新用戶。


          圖 2. 創(chuàng)建一個新用戶

          創(chuàng)建一個新用戶

          4.確保使用 Control Center (控制中心) 的高級視圖。切換到高級視圖的方法是,從 Control Center (控制中心) Tools 菜單中選擇 Customize Control Center (控制中心) 菜單項,選擇 Advanced (高級) 選項并單擊“確定”按鈕。


          圖 3. 打開控制中心高級視圖

          打開控制中心高級視圖 

          5.在 Control Center (控制中心) 左邊面板中的對象樹中,依次展開所有數(shù)據(jù)庫> EXPRESS > Tables。

          6.將所需的特權(quán)授予剛才創(chuàng)建的用戶。在 EXPRESS 數(shù)據(jù)庫的表列表中,右鍵單擊 CUSTOMERS 表并選擇 “特權(quán)” 菜單項,這時會顯示 “表特權(quán)” 對話框。


          圖 4. 打開特權(quán)菜單項

          打開特權(quán)菜單項 

          7.單擊“添加用戶”按鈕并選擇剛才創(chuàng)建的 customer 用戶。單擊 “確定”按鈕關(guān)閉 “添加用戶” 對話框。


          圖 5. 給表添加用戶

          給表添加用戶 

          8.您會注意到,customer 用戶已經(jīng)添加到用戶列表中了,但是還沒有分配特權(quán)。為了授予這個用戶 SELECT、INSERT、UPDATE 和 DELETE 特權(quán),將所有下拉框改為 Yes。因特網(wǎng)客戶應該能夠查看/添加/更新/刪除他們的帳戶數(shù)據(jù)。我們不授予這個用戶其他權(quán)限,因為他們不需要那些權(quán)限。單擊 “確定” 按鈕關(guān)閉 “表特權(quán)” 對話框并接受所做的修改。


          圖 6. 授予用戶權(quán)限

          授予用戶權(quán)限 

          9.對于 BOOKS 和 SALES 表重復第 6-8 步。對于 BOOKS 表,只授予 SELECT 特權(quán),因為不應該允許客戶修改商店的庫存數(shù)據(jù)。對于 SALES 表,只授予 SELECT 和 INSERT 特權(quán)。客戶不應該有 DELETE 或 UPDATE 特權(quán),因為只有商店職員應該有權(quán)修改銷售數(shù)據(jù)。

          10.使用上面創(chuàng)建的用戶 ID 連接數(shù)據(jù)庫。嘗試從 CUSTOMERS 表中選擇數(shù)據(jù),會發(fā)生什么情況?嘗試刪除或更新 SALES 表中的數(shù)據(jù),會發(fā)生什么情況?

          在本次實驗中,我們只創(chuàng)建了一個用戶;但是,實際的應用程序可能包含許多不同類型的用戶。請您自己試著創(chuàng)建其他用戶并授予他們特權(quán)。還可以創(chuàng)建用戶組并向組授予特權(quán),這樣就不必向每個用戶分別授予特權(quán)。

          轉(zhuǎn)帖者注:

              創(chuàng)建完新用戶后,在使用該新用戶身份進行JDBC連接時需要注意SQL語句的寫法。比如:當初創(chuàng)建數(shù)據(jù)庫時使用的是Administer用戶身份。現(xiàn)在在該數(shù)據(jù)中增加了用戶——customer,那么在使用customer身份連接數(shù)據(jù)庫后的所有SQL語句均要求在表名前增加原數(shù)據(jù)庫表的創(chuàng)建者。

          例如,SELECT * FROM Administer.TableName ; (注意紅色部分)不能寫成SELECT * FROM TableName ,否則會發(fā)生

          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 閱讀(7578) 評論(0)  編輯  收藏 所屬分類: DB2

          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 荆州市| 大悟县| 城固县| 祁阳县| 深圳市| 湄潭县| 定南县| 乐昌市| 小金县| 易门县| 彭州市| 犍为县| 侯马市| 长阳| 容城县| 胶州市| 武穴市| 璧山县| 荔波县| 聊城市| 扬中市| 衡水市| 乐至县| 靖安县| 合水县| 潼关县| 醴陵市| 邢台县| 潮安县| 盐池县| 贵溪市| 黔西县| 玉田县| 项城市| 大同县| 湖州市| 济阳县| 茶陵县| 原阳县| 台江县| 江口县|