windows下创建db2用户并授权

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:21   1643   0

创建用户可参考下面博客,我这里复用了此部分:

https://blog.csdn.net/liujinwei2005/article/details/8546928

1:创建用户

目标

到目前为止,一直使用实例管理员帐户(SYSADM)来执行所有数据库命令。这个帐户对所有实用程序、数据和数据库对象具有完全访问权。因此,为了 避免无意或有意的数据损失,必须要保护这个帐户。在大多数情况下,需要创建不同的用户和/或组,并授予有限的权限集。在本次实验中,将创建一个新的用户帐 户,然后为它分配特定的特权。

步骤

1.通过控制面板打开“管理”菜单项,打开“计算机管理”控制台。

2.在窗口左边的面板中,展开“系统工具”,然后展开“本地用户和组”文件夹。右击 “用户”文件夹并选择“新建用户”菜单项。


图 1. 打开计算机管理中用户管理

3.在“用户”对话框中,输入以下信息(另外参见下图)。在“用户名”框中,输入 customer。在“全名”框中,输入 Customer1。在“描述”框中,输入 A typical bookstore customer。在 “密码” 和 “确认密码” 框中,输入 ibmdb2admin。取消 “用户下次登录时须修改密码”选项。最后,单击“创建”按钮创建新用户。


图 2. 创建一个新用户

注意:一定取消"用户下次登录时必须修改密码"这个选项,如果没有要求可以勾选密码永不过期

2:授权

此部分因为https://blog.csdn.net/liujinwei2005/article/details/8546928在控制中心一个个授权比较麻烦,所以我重新实现了批量授权的步骤,具体如下

2.1:授予用户连接数据库权限

grant connect on database to user XXX

备注:xxx是被授权用户,请替换成实际用户

2.2:授予用户对数据库中某个模式名下所有表的增删改查等权限(批量授权)

批量打印授权语句:

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的命令窗口了,就可以执行上面的语句了

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP