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

yexianyi yexianyi     2022-12-12     369

关键词:

目标

到目前为止,一直使用实例管理员帐户(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.对于 BOOKSSALES 表重复第 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)

 

 

 

根据 if 条件创建一个新列并为其分配一个值

】根据if条件创建一个新列并为其分配一个值【英文标题】:Creatinganewcolumnandassigningitavalue,basedonanifcondition【发布时间】:2018-09-2800:17:00【问题描述】:我有一个数据框:我想遍历它以检查它是否是NLTK支持的参考中的一个词。在i... 查看详情

windows服务器db2数据库建库过程演示,db2创建表空间分配权限(代码片段)

DB2数据库建库过程演示第一章:建库过程命令①进入db2命令执行界面②创建数据库③进入sql输入界面④连接数据库⑤创建缓冲池⑥创建表空间⑦分配权限⑧连接重置第二章:其它建库过程SQL语句清单[推荐文章]一篇文章快... 查看详情

sql创建数据库并为其添加用户(代码片段)

查看详情

为 Woocommerce 中的特定用户角色自定义我的帐户新菜单项

...发布时间】:2019-05-0501:07:16【问题描述】:我为Woocommerce创建了一些自定义的“我的帐户”端点。我试图将一个限制为每个用户角色可见。对于以下代码,我希望它只对具有管理员角色的用户可见。我尝试在我的代码中插入条件i... 查看详情

DB2 数据库 + 验证

】DB2数据库+验证【英文标题】:DB2Database+verification【发布时间】:2013-04-0415:43:22【问题描述】:所以我是数据库新手,我正在努力学习。我有一个我熟悉的DB2数据库。我被分配了一个任务,我需要编写一个在数据库上进行搜索... 查看详情

如何在 android studio 中使用 sqlite 为特定帐户创建表?

】如何在androidstudio中使用sqlite为特定帐户创建表?【英文标题】:howtocreatetableforspecificaccountusingsqliteinandroidstudio?【发布时间】:2018-11-2619:30:04【问题描述】:我创建了一个表来使用Sqlite在AndroidStudio中存储数据。我使用FacebookSDK... 查看详情

db2常用命令

操作数据库命令1、启动数据库实例 #db2start2、停止数据库实例 #db2stop 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2forceapplicationall就可以了/db2stopforce3、创建数据库 #db2createdb[dbname]4、连接到数据库 #db2connec... 查看详情

如何将行数据透视到特定列 db2

】如何将行数据透视到特定列db2【英文标题】:Howtopivotrowdataintospecificcolumnsdb2【发布时间】:2020-09-1816:20:58【问题描述】:我想将表格中的结果转换为新结构。这样它就可以将所有的孩子映射到父产品。当前结果Parent_Prod_Num|Child... 查看详情

Java/Groovy:ZIP 文件并为其分配权限

...vy的帮助程序,但我被权限管理困住了。我在Windows机器上创建程序集,这意味着原生unix风格的权限管理不可用。是否可以使用Groovy/Java压缩某些文件,同 查看详情

centos7安装db211.5(代码片段)

...查用户组和用户2.6创建实例2.6.1绑定端口号2.6.2创建样本数据库2.7配置DB22.7.1设置DB2自启动2.7.2修改网络服务端口(注:在db2inst1用户下),修改DB2的服务端口为50658,默认情况下端口是50000(单实例的话可以不修改)2.7.3修改DB2连接方式... 查看详情

mysql添加新用户为用户创建数据库为新用户分配权限

登录MySQLmysql-uroot-p添加新用户允许本地IP访问localhost,127.0.0.1createuser‘test‘@‘localhost‘identifiedwith加密方式(mysql_native_password)by‘123456‘;允许外网IP访问createuser‘tst‘@‘%‘identifiedby‘123456‘;刷新授权flushprivileges; 查看详情

linux系统下安装db2数据库时,正常执行./db2setup没有任何的反应,根本就没有安装界面!晕死了、、、、、

...在可以查看当前实例db2ilist如果需要创建表,则需要打开数据库管理服务,输入命令:su-db2inst1db2start//启动db2工作实例db2stop//停止db2实例db2set-all//查看db2所有注册表变量在变量列表中有一个db2管理用户:DB2ADMINSERVER=XXXXX只有切换... 查看详情

linux系统安装db2数据库的详细步骤

1、DB2数据库的安装一、将DB2的安装介质上传至/home目录,并解压:  tar–zxvfv9.5fp3_linuxx64_server.tar.gz二、执行LANG=C三、进入解压后的server目录(cdserver/),执行./db2setup,步骤如下:#cd/home#tar-zxvfv9.7_linuxx64_... 查看详情

SQL创建用户登录不能从一个数据库为另一个数据库工作

】SQL创建用户登录不能从一个数据库为另一个数据库工作【英文标题】:SQLcreateuserloginnotworkingfromonedatabaseforotherdatabase【发布时间】:2015-01-0810:19:31【问题描述】:我在同一台服务器上有两个数据库,db1和db2。我在db1上有一个名... 查看详情

在数据框中查找重叠范围并为其分配值

】在数据框中查找重叠范围并为其分配值【英文标题】:Findoverlappingrangesinadataframeandassignthemvalues【发布时间】:2018-01-1112:30:22【问题描述】:原始question的一个更简单的版本,我问过,但还没有人回答。我有一个巨大的输入文件... 查看详情

如何升级数据库用户权限以创建新数据库?

】如何升级数据库用户权限以创建新数据库?【英文标题】:Howtoescalatedatabaseuserpermissionstocreatenewdatabases?【发布时间】:2011-02-2804:39:32【问题描述】:我创建了新的cPanel帐户,使用此帐户创建了新数据库、新数据库用户和连接用... 查看详情

db2 中 CASE 表达式中的子查询

...式中使用子查询,但失败了。我正在使用DB2,我使用银行数据库并尝试选择所有有帐户或没有帐户的客户(客户类型5)。如果他们确实有一个活动帐户,那么我想将该帐户显示为1列而不是3列。我确实意识到我可以使用OUTERJOIN来... 查看详情

db2在查询语法上和oracle、mysql差异

...abase与User分开是跟其他两个的区别,用授权来关联用户和数据库。jdbc的连接地址里面,三者分别指定了Database、User、User(&Schema),Db2如果不单独创建Schema则形式是跟Oracle一样的。Db2的User只能是操作系统的用户,数据库本身不... 查看详情