首先,我想将数据库从IBM DB2 AIX导出到IBM DB2窗口中。不幸的是,由于操作系统问题,我无法使用BACKUP和RESTORE命令。因此,我不得不诉诸db2move命令。
我已经使用以下命令从远程IBM DB2 AIX中的dbemp数据库中导出了myschema模式和所有表:
db2move dbemp export -sn myschema
当我运行该命令时,我以名为dbuser1的用户身份登录。
它会在当前文件夹中生成一堆文件。我将文件抓到安装了IBM DB2 LUW的本地计算机(Windows)中。
现在,在本地计算机的IBM DB2中,我首先使用IBM Data Studio 删除了现有的模式myschema(我也有一个本地dbemp数据库)。
然后我使用以下命令导入文件:
db2move dbemp import
它将模式和表成功导入到本地dbemp数据库中。
执行上述操作时,我以用户winuser1身份登录。
我的本地计算机(Windows)中也有一个名为dbuser1的本地用户。在IBM Data Studio中,我创建了一个连接配置文件,该连接配置文件使用dbuser1用户连接到本地dbemp,并且可以浏览myschema模式和表,但是无法浏览表的数据(出现特权错误)。用户winuser1可以浏览表的数据,但是出于开发目的,我必须使用用户dbuser1连接到数据库。
因此我发现我可以像这样向表上的用户授予特权:
GRANT ALL ON myschema.table1 TO USER dbuser1
问题是我有100个表,我不想为每个表键入这些行。不幸的是,也没有这样的通配符解决方案:
GRANT ALL ON myschema.* TO USER dbuser1 -- this doesn't work
因此,问题是如何将模式中所有表的所有特权授予用户?还是有其他更好的解决方案?也许通过将所有特权从winuser1复制到dbuser1?
db2 grant dataaccess
工作。在开发环境中,我不介意将它们授予所有架构。