qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          跟屌絲學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 創建新數據庫


          從 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)



          posted on 2012-12-05 18:30 順其自然EVO 閱讀(7578) 評論(0)  編輯  收藏 所屬分類: DB2

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 江北区| 孟津县| 枞阳县| 稷山县| 本溪市| 海淀区| 绿春县| 五河县| 通许县| 饶平县| 乃东县| 康定县| 霸州市| 涞源县| 安达市| 米泉市| 黔东| 伽师县| 滨海县| 唐河县| 象州县| 胶南市| 逊克县| 墨脱县| 临湘市| 佛学| 乐东| 驻马店市| 宣化县| 济源市| 镇宁| 灌南县| 莱西市| 攀枝花市| 淳安县| 凤山县| 永济市| 浑源县| 抚松县| 临江市| 德清县|