创建用户可参考下面博客,我这里复用了此部分:
https://blog.csdn.net/liujinwei2005/article/details/8546928
目标
到目前为止,一直使用实例管理员帐户(SYSADM)来执行所有数据库命令。这个帐户对所有实用程序、数据和数据库对象具有完全访问权。因此,为了 避免无意或有意的数据损失,必须要保护这个帐户。在大多数情况下,需要创建不同的用户和/或组,并授予有限的权限集。在本次实验中,将创建一个新的用户帐 户,然后为它分配特定的特权。
步骤
1.通过控制面板打开“管理”菜单项,打开“计算机管理”控制台。
2.在窗口左边的面板中,展开“系统工具”,然后展开“本地用户和组”文件夹。右击 “用户”文件夹并选择“新建用户”菜单项。
图 1. 打开计算机管理中用户管理
3.在“用户”对话框中,输入以下信息(另外参见下图)。在“用户名”框中,输入 customer。在“全名”框中,输入 Customer1。在“描述”框中,输入 A typical bookstore customer。在 “密码” 和 “确认密码” 框中,输入 ibmdb2admin。取消 “用户下次登录时须修改密码”选项。最后,单击“创建”按钮创建新用户。
图 2. 创建一个新用户
注意:一定取消"用户下次登录时必须修改密码"这个选项,如果没有要求可以勾选密码永不过期
此部分因为https://blog.csdn.net/liujinwei2005/article/details/8546928在控制中心一个个授权比较麻烦,所以我重新实现了批量授权的步骤,具体如下
grant connect on database to user XXX
备注:xxx是被授权用户,请替换成实际用户
批量打印授权语句:
select 'db2 grant select,update,insert,delete on table XXX1. '|| tabname ||' to XXX2' from syscat tables where tabschema = 'XXX1'
备注:
1:语句中'和.不可省略,XXX1代表数据库给用户授权的模式名,XXX2是指被授权的用户
2:在db2命令中执行此语句,会得到此模式名下的授权语句(还未执行的)
将打印后的语句复制出来并执行即可,打印语句格式如下:
grant select,update,insert,delete on table XXX1.a to XXX2
grant select,update,insert,delete on table XXX1.b to XXX2
类似这样,其中XXX1代表数据库给用户授权的模式名,XXX2是指被授权的用户
备注:
1:要仔细检查这个复制出来的打印语句在执行后有没有报错,因为是批量执行,如果数据量比较大,中间有报错不容易发现,所以在执行前还是仔细核对语句
2:复制出来的sql语句如果放在本地,再复制执行,此时注意语句是否有换行,换行后的语句可能不被执行到。例如:
本地:grant select,update,insert,delete on table XXX1.a to
XXX2
此时复制到db2中,可能直接执行成grant select,update,insert,delete on table XXX1.a to报错
完成以上步骤就完成用户的创建和授权了。
但是有人会说,你的这些命令我在哪里执行呢?
进入:cmd
cmd命令窗口中:输入db2cmd
db2cmd命令窗口中:输入db2就可以进入db2的命令窗口了,就可以执行上面的语句了