记一次db2 备份恢复过程中遇到的用户权限问题
Posted 害虫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次db2 备份恢复过程中遇到的用户权限问题相关的知识,希望对你有一定的参考价值。
今天在备份windows上db2数据的时候用的以下命令(原db2 dba用户为A)
db2 backup db db2demo
执行成功
然后再另一台同环境机器上执行
db2 create db db2demo
成功
db2 connect to db2demo
成功
db2 create schema db2rcs
成功
db2 grant dbadm on database to user B (因为恢复电脑用户名与备份机器用户名不同)
成功,(此时用户B对db2demo 有完全管理权限)
然后执行数据库恢复,命令
db2 restore db db2demo from e: taken at 20180531132230
成功
然后出现问题 ,用户B失去了数据库db2demo除了connect外的任何权限!
当再次执行刚刚执行成功过的命令
db2 grant dbadm on database to user B
时,依旧报错,没有grant权限。
换任何用户再使用grant命令,提示未授权,甚至不可以执行select 查看表。
经过多次反复试验后(此处省略试验了多少次:joy:),发现问题原因:备份时,数据库的有效dba用户是A,在另一台电脑执行db2 restore 命令恢复数据库db2demo后,db2demo 只有用户A才有dba权限。
解决办法:在恢复电脑上,创建用户A,并加入Administrators组(有的win10系统没有用户和组这个管理菜单了,而是被控制面板中的账户管理所代替,但是经我测试,控制面板中的账户管理没有找到管理用户和组的功能 - -!有人知道怎么弄请回帖告知)。
然后先删掉当前这个无法管理的库
db2 drop db db2demo
成功
重新建这个库,步骤同上,不同的是,在恢复备份之前,给A用户grant dbadm权限。恢复完成后,只有A用户有该库的dba权限。
发现这个问题的关键在于测试过程中,刚创建db2demo这个库时,未恢复备份之前,权限是没问题的。故怀疑是恢复备份文件后导致的权限问题。
在蛛丝马迹中寻找线索,过程很痛苦,结果很感人。
以上是关于记一次db2 备份恢复过程中遇到的用户权限问题的主要内容,如果未能解决你的问题,请参考以下文章