DB2: 为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)
?
?
?
轉載于:https://www.cnblogs.com/duadu/archive/2008/08/20/6335721.html
總結
以上是生活随笔為你收集整理的DB2: 为DB2数据库创建新用户帐户并为其分配特定特权的全部內容,希望文章能夠幫你解決所遇到的問題。