Em primeiro lugar, quero exportar o banco de dados do IBM DB2 AIX para as janelas do IBM DB2. Infelizmente, não posso usar o comando BACKUP e RESTORE devido a um problema de sistema operacional diferente. Então eu tenho que recorrer ao comando db2move .
Eu exportei o esquema myschema e todas as tabelas do banco de dados dbemp no remoto IBM DB2 AIX usando este comando:
db2move dbemp export -sn myschema
Quando eu executo esse comando, eu estava logado como usuário chamado dbuser1 .
Ele gera um monte de arquivos na pasta atual. Eu pego os arquivos em minha máquina local (windows) que tem o IBM DB2 LUW instalado.
Agora, no IBM DB2 da minha máquina local, descartei primeiro o esquema myschema existente usando o IBM Data Studio (também tinha um banco de dados dbemp local ).
Então eu importei os arquivos usando este comando:
db2move dbemp import
Ele importou com sucesso o esquema e as tabelas para o banco de dados dbemp local .
Quando eu fiz as ações acima, eu estava logado como usuário winuser1 .
Eu tenho um usuário local chamado dbuser1 também na minha máquina local (windows). No IBM Data Studio, criei um perfil de conexão que se conecta ao dbemp local usando o usuário dbuser1 e posso navegar pelo esquema myschema e pelas tabelas, mas não consigo navegar pelos dados da tabela (recebi erro de privilégio). O usuário winuser1 pode navegar pelos dados da tabela, mas para fins de desenvolvimento, tenho que me conectar ao banco de dados usando o usuário dbuser1 .
Então descobri que posso conceder privilégio a um usuário na tabela assim:
GRANT ALL ON myschema.table1 TO USER dbuser1
O problema é que tenho 100 tabelas, não quero digitar essas linhas para cada tabela. E, infelizmente, também não existe uma solução curinga como esta:
GRANT ALL ON myschema.* TO USER dbuser1 -- this doesn't work
Então a questão é como conceder todos os privilégios em todas as tabelas em um esquema para um usuário? Ou existe uma solução alternativa melhor? talvez copiando todos os privilégios de winuser1 para dbuser1 ?