Isso faz parte de uma tarefa maior de customização de seu ambiente z/OS e é relevante somente para o componente do intermediário.
O Configuration Manager e o Servidor de Nome de Usuário não requerem acesso ao DB2.
O WebSphere Message Broker para z/OS acessa tabelas do DB2 utilizando o ODBC. Para conectar-se ao DB2 utilizando o
ODBC, é utilizado o nome do local do subsistema DB2. Consulte o manual DB2 UDB
para
OS/390
e z/OS V7 Data Sharing: Planning and Administration para
obter detalhes adicionais.
É necessário fornecer a determinados IDs de usuário acesso a recursos do
DB2 e esses estão resumidos abaixo:
- Administrador de sistema DB2
- Criar banco da dados, grupos de armazenamento e espaços de tabela (BIPCRDB).
- Eliminar banco de dados (BIPDLDB)
- Administrador para o banco de dados do intermediário (DBA). Deve ser o administrador do WebSphere Message Broker.
- Criar tabelas e índices (BIPCRBK)
- Criar tabelas, eliminar tabelas e criar índices (BIPMGCMP)
- ID do usuário da tarefa iniciada do intermediário:
- SQL para selecionar, inserir e excluir linhas das tabelas do banco de dados do intermediário e selecionar de tabelas do sistema
DB2.
- Administrador do WebSphere Message Broker e outros usuários
- SQL para selecionar, inserir e excluir linhas das tabelas do banco de dados do intermediário e selecionar de tabelas do sistema
DB2.
Quando o sistema DB2 for inicializado, deverá haver
uma mensagem DSNL004I DDF START COMPLETE.O nome do local é exibido logo após
esta mensagem. Quando customizar um componente do intermediário
no z/OS, você criará um arquivo dsnaoini
chamado BIPDSNAO no PDSE do intermediário. Ele contém as informações necessárias para estabelecer a conexão ODBC.
Consulte o manual DB2 UDB para OS/390 e
z/OS V7 ODBC Guide and Reference para obter detalhes adicionais.
Evite utilizar um nome de origem de dados que seja igual ao ID do
subsistema ou ao ID de compartilhamento de dados. Se for utilizado o
mesmo nome, isso poderá afetar a granularidade de diretrizes na
conexão com o banco de dados.
Se você optar por utilizar o mesmo valor para o nome da
origem de dados e ID do subsistema, deverá editar BIPDSNAO
no PDSE do intermediário para que as palavras-chave Datasource e Subsystem estejam em uma seção.
Consulte o manual DB2 UDB for OS/390
and z/OS V7 ODBC Guide and Reference para obter informações adicionais sobre como personalizar este arquivo.
Durante a personalização, você pode especificar qual nome de plano utilizar ou
utilize o padrão
DSNACLI. Se desejar que o intermediário acesse grupos de compartilhamento de dados do
DB2
diferentes do seu, o plano
DSNACLI deverá estar ligado
de uma forma especial.Verifique se o local curinga foi
especificado utilizando SPUFI e emitindo o seguinte comando:
select * from SYSIBM.SYSPACKLIST where planname ='DSNACLI';
Será necessário
refazer bind se a coluna de local estiver em branco e não
'*'.
Também é necessário verificar se DSNACLI está na tabela SYSIBM.SYSPLAN.
Você obterá importantes benefícios de desempenho ao utilizar o recurso CACHE
DYNAMIC SQL do DB2, porque ele elimina a necessidade de reprocessar instruções do DB2.
Consulte CACHEDYN=YES no DB2 UDB for OS/390 and z/OS
V7 Installation Guide.
Se o banco de dados do usuário estiver configurado para utilizar uma vírgula como separador decimal utilizando o módulo
DSNHDECP,
você perceberá que existe uma restrição. Se houver uma
incompatibilidade entre o
DB2 e as definições de código do idioma do ID do usuário com o qual o servidor intermediário é executado (especificamente
LC_NUMERIC), as atualizações do banco de dados do usuário
poderão ser imprevisíveis.
LC_NUMERIC é configurado através da configuração
LC_ALL no membro
BIPBPROF e, portanto, no arquivo de ambiente. A lista a seguir detalha as quatro possibilidades:
- Se o DB2 estiver configurado para utilizar um ponto como um ponto decimal e LC_NUMERIC
estiver definido como um valor que indica um ponto decimal de um ponto; as atualizações do
banco de dados do usuário deverão funcionar corretamente.
- Se o DB2 estiver configurado para utilizar uma vírgula como um ponto decimal e LC_NUMERIC
estiver definido como um valor que indica um ponto decimal de uma vírgula; as atualizações do
banco de dados do usuário deverão funcionar corretamente.
- Se o DB2 estiver configurado para utilizar um ponto como um ponto decimal e LC_NUMERIC
estiver definido como um valor que indica um ponto decimal de uma vírgula; as atualizações do
banco de dados do usuário poderão gerar um comportamento imprevisível.
- Se o DB2 estiver configurado para utilizar uma vírgula como um ponto decimal e LC_NUMERIC
estiver definido como um valor que indica um ponto decimal de um ponto; as atualizações do
banco de dados do usuário poderão gerar um comportamento imprevisível.
Você pode utilizar o mecanismo de segurança do DB2 ou, se no z/OS 1.5 e DB2 Versão 8, utilize um gerenciador de segurança externo, por exemplo, RACF.
Mecanismo de segurança do DB2
A maneira mais prática de gerenciar o acesso aos recursos do
DB2 de um intermediário é definindo dois grupos RACF e conectando usuários a esses grupos.
Por exemplo, os grupos RACF
MQP1ADM e
MQP1USR são definidos para o intermediário
MQP1BRK da seguinte forma:
- Para o grupo MQP1ADM
- Conceda a esse grupo autoridade DBADM para o banco de dados do intermediário.
- Geralmente pertencente ao administrador do WebSphere Message Broker; IDs de usuário que precisam enviar BIPCRBK para criar um intermediário ou BIPMGCMP para migrar um intermediário precisam ser incluídos neste grupo.
- Para o grupo MQP1USR
- Forneça a esse grupo acesso para manipular linhas nas tabelas do intermediário e permitir acesso seletivo a tabelas do sistema
DB2.
Exemplo:
GRANT DELETE, INSERT, SELECT, UPDATE
ON TABLE
DB2_TABLE_OWNER.BSUBSCRIPTIONS
,DB2_TABLE_OWNER.BPUBLISHERS
,DB2_TABLE_OWNER.BCLIENTUSER
,DB2_TABLE_OWNER.BTOPOLOGY
,DB2_TABLE_OWNER.BNBRCONNECTIONS
,DB2_TABLE_OWNER.BRETAINEDPUBS
,DB2_TABLE_OWNER.BACLENTRIES
,DB2_TABLE_OWNER.BMQPSTOPOLOGY
,DB2_TABLE_OWNER.BUSERNAME
,DB2_TABLE_OWNER.BGROUPNAME
,DB2_TABLE_OWNER.BUSERMEMBERSHIP
,DB2_TABLE_OWNER.BROKERAA
,DB2_TABLE_OWNER.BROKERAAEG
,DB2_TABLE_OWNER.BROKERRESOURCES
,DB2_TABLE_OWNER.BRMINFO
,DB2_TABLE_OWNER.BRMRTDINFO
,DB2_TABLE_OWNER.BRMRTDDEPINFO
,DB2_TABLE_OWNER.BRMWFDINFO
,DB2_TABLE_OWNER.BRMPHYSICALRES
,DB2_TABLE_OWNER.BAGGREGATE
,DB2_TABLE_OWNER.BMULTICASTTOPICS
TO MQP1USR;
GRANT SELECT
ON TABLE
SYSIBM.SYSTABLES
,SYSIBM.SYSSYNONYMS
,SYSIBM.SYSDATABASE
TO MQP1USR;
- Conecte o ID do usuário da tarefa iniciada do intermediário e o administrador do WebSphere Message Broker a este grupo e conecte quaisquer outros usuários que possam precisar de acesso às tabelas, por exemplo, aqueles enviando BIPRELG para executar o comando mqsireadlog.
Observe o seguinte:
- Ao acessar os recursos do DB2, você especifica um CURRENT SQLID como um comando DB2 ou através do membro
BIPDSNAO.
Se esse ID for um grupo, então, o
DB2 verifica se seu ID de usuário é conectado a este grupo e, se for, você herda o acesso do grupo; se o ID do usuário não estiver no grupo, você recebe o código SQL -551.
Se seu ID estiver em vários grupos, as autoridades mais altas serão utilizadas.
- Para BIPCRDB e BIPDLDB, CURRENT
SQLID é especificado como um comando no JCL. Para todos outros JCL, é especificado em BIPDSNAO.
- Se você não utilizar grupos para definir permissões, mas utilizar um Id de usuário específico para definir as permissões para IDs de usuários individuais, então, se o ID de usuário de concessão for removido do DB2, quaisquer permissões que tenha concedido também serão removidas.
Isso pode evitar que outros usuários trabalhem.
- Quando a tarefa BIPDLDB eliminar o banco de dados
DB2 do intermediário, ele também excluirá
quaisquer referências de Cópia de Imagem para si que exista no momento.
Se você restaurar o intermediário no futuro precisará reinstanciar as
referências de Cópia de Imagem.
Se esse ID for um grupo, o
DB2 verifica se seu ID de usuário é conectado a este grupo e, se for, você herda o acesso do grupo; se o ID do usuário não estiver no grupo, você recebe o código SQL -551. Se seu ID estiver em vários grupos, as autoridades mais altas serão utilizadas.
Se você não utilizar grupos para definir permissões, mas utilizar um ID de usuário específico para definir as permissões para IDs de usuários individuais, então, se o ID de usuário de concessão for removido do DB2, quaisquer permissões que tenha concedido também são removidas. Isso pode evitar que outros usuários trabalhem.
Consulte Tarefas de Utilitários do z/OS para obter informações adicionais sobre o WebSphere Message Broker para tarefas do z/OS fornecidas.