从 db2 Express-C 迁移到 Developer 版本
migrating from db2 Express-C to Developer version
我有一个来自 db2 express-c 11.1 版本的备份文件,我想将它恢复到 db2 开发人员版本(都在 Windows 机器上)。 RESTORE 成功完成,我可以从 db2 命令行列出表
db2 list tables for schema XYZ
但是当我尝试访问数据时收到以下错误消息
SQL0551N The statement failed because the authorization ID does not have the
required authorization or privilege to perform the operation. Authorization
ID: "DB2USER". Operation: "SELECT". Object: "XYZ.Table1". SQLSTATE=42501
我以 RESTORE 数据库的用户身份登录。这里有什么问题?
将 DB2-luw 数据库备份恢复到不同的 Db2-instance 时,明智的做法是首先在目标 Db2-instance [=23] 上设置 Db2-registry 变量=]在执行database-restore之前。然后,执行 Db2-restore 的帐户将被授予对已还原数据库的 SECADM、DBADM、DATAACCESS 和 ACCESSCTRL 权限。
db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=on
更多信息here。
然后执行Db2-restore命令。
如果您还没有执行此操作,那么您也可以使用手动 GRANT 语句(在数据库级别和对象级别)来适应新的 Db2 实例,但最好结果你应该使用上面的注册表变量。
您还可以在各个级别使用 TRANSFER OWNERSHIP 语句来实现安全模型。详情 here。当之前的所有者是 Db2 实例并且 restored-database 与 backed-up-database.
位于不同的 Db2 实例中时,这很有用
我有一个来自 db2 express-c 11.1 版本的备份文件,我想将它恢复到 db2 开发人员版本(都在 Windows 机器上)。 RESTORE 成功完成,我可以从 db2 命令行列出表
db2 list tables for schema XYZ
但是当我尝试访问数据时收到以下错误消息
SQL0551N The statement failed because the authorization ID does not have the
required authorization or privilege to perform the operation. Authorization
ID: "DB2USER". Operation: "SELECT". Object: "XYZ.Table1". SQLSTATE=42501
我以 RESTORE 数据库的用户身份登录。这里有什么问题?
将 DB2-luw 数据库备份恢复到不同的 Db2-instance 时,明智的做法是首先在目标 Db2-instance [=23] 上设置 Db2-registry 变量=]在执行database-restore之前。然后,执行 Db2-restore 的帐户将被授予对已还原数据库的 SECADM、DBADM、DATAACCESS 和 ACCESSCTRL 权限。
db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=on
更多信息here。
然后执行Db2-restore命令。
如果您还没有执行此操作,那么您也可以使用手动 GRANT 语句(在数据库级别和对象级别)来适应新的 Db2 实例,但最好结果你应该使用上面的注册表变量。
您还可以在各个级别使用 TRANSFER OWNERSHIP 语句来实现安全模型。详情 here。当之前的所有者是 Db2 实例并且 restored-database 与 backed-up-database.
位于不同的 Db2 实例中时,这很有用