40
IBM i Versão 7.2 Banco de Dados Administração de Banco de Dados

IBM i: Administra..o de Banco de Dados · evento, como uma atualização de uma tabela específica. Conceitos relacionados: Controle de Consolidação ... Importar dados é o processo

Embed Size (px)

Citation preview

IBM iVersão 7.2

Banco de DadosAdministração de Banco de Dados

���

IBM iVersão 7.2

Banco de DadosAdministração de Banco de Dados

���

AvisoAntes de utilizar estas informações e o produto suportado por elas, leia as informações em “Avisos” na página 29.

Esta edição se aplica ao IBM i 7.2 (número do produto 5770-SS1) e a todas as liberações e modificaçõessubsequentes até que seja indicado de outra forma em novas edições. Esta versão não é executada em todos osmodelos RISC (Reduced Instruction Set Computer), nem nos modelos CISC.

Este documento pode conter referências ao Código Interno Licenciado. O Código Interno Licenciado é um Códigode Máquina e é licenciado a você sob os termos do IBM License Agreement for Machine Code.

© Copyright IBM Corporation 1998, 2013.

Índice

Administração de Banco de Dados . . . 1O que Há de Novo no IBM i 7.2 . . . . . . . . 1Arquivo PDF para Administração de Banco de Dados 1Administração de Banco de Dados . . . . . . . 2

Acessando Dados Através de Interfaces do Cliente 2Acessando Dados com Java . . . . . . . 2Acessando Dados com o Domino . . . . . 2Acessando Dados com o ODBC . . . . . . 2Acessando Dados com o IBM i PASE . . . . 2Acessando Dados com o Provedor IBM i Accessfor Windows OLE DB . . . . . . . . . 3Acessando Dados com o IBM i Access paraWindows .Net Provider. . . . . . . . . 3Acessando Dados com o Net.Data . . . . . 3Acessando Dados Através de uma Partição doLinux . . . . . . . . . . . . . . . 3Acessando Dados Utilizando o DRDA(Distributed Relational Database Architecture) . 3

Alterando e Gerenciando Objetos de Banco deDados . . . . . . . . . . . . . . . 3Criando Objetos de Banco de Dados . . . . . 4Assegurando a Integridade dos Dados. . . . . 4Importando e Exportando Dados entre Sistemas . 4Trabalhando com Vários Bancos de Dados . . . 4Trabalhando com Acionadores e Restrições . . . 5Gravando Programas do DB2 . . . . . . . . 5

Backup e Recuperação do Banco de Dados . . . . 5Administração de Banco de Dados Distribuída . . . 6Consultas e Relatórios . . . . . . . . . . . 6Segurança . . . . . . . . . . . . . . . 6

Opções de Autoridade para Análise e Ajuste deSQL . . . . . . . . . . . . . . . . 7

Row and Column Access Control (RCAC) . . . . 12Visão Geral . . . . . . . . . . . . . 13Permissões e Máscaras. . . . . . . . . . 14Instruções SQL . . . . . . . . . . . . 15Funções Protegidas . . . . . . . . . . . 16Proteger Acionadores . . . . . . . . . . 16Autoridade administrativa . . . . . . . . 16

Melhores Práticas ao Usar Permissões e Máscaras 16Criando Permissões e Máscaras. . . . . . 16

Única Permissão com Todos os Usuários . 16Única Permissão com um Perfil de Grupo 17Única Permissão com uma TabelaDependente . . . . . . . . . . . 17Única Permissão com um UDF . . . . . 18Permissões para Cada Usuário . . . . . 18Atributos de Diversas Permissões . . . . 19Nomes de Objetos Não Qualificados . . . 19

Objetos Dependentes . . . . . . . . . 19Propriedade . . . . . . . . . . . 20Esquema . . . . . . . . . . . . 20Autoridade de Esquema . . . . . . . 20UDFs Protegidos . . . . . . . . . 20ALWCPYDTA e Nível de Isolamento . . . 21Restaurando Objetos . . . . . . . . 21

Operações Adicionais . . . . . . . . . 21Incluindo o Perfil do Aplicativo emPermissões e Máscaras. . . . . . . . 21Recuperar o Armazenamento . . . . . 21Relatórios de Consulta. . . . . . . . 22MQTs . . . . . . . . . . . . . 22Perfis de Grupo e QIBM_DB_SECADM . . 22Parâmetros Copy File (CPYF) . . . . . 23OmniFind Text Search Server for DB2 for i 23

Usando o RCAC em Arquivos LógicosMultiformatados. . . . . . . . . . . 23Propagação de Dados Mascarados . . . . . 25

Classic Query Engine (CQE) e SQL Query Engine(SQE) . . . . . . . . . . . . . . . . 27

Diferenças de Consulta Nativa e Aberta . . . . 27Ordenação de Conjunto de Resultados . . . . 27

Avisos . . . . . . . . . . . . . . . 29Informações sobre a Interface de Programação. . . 31Marcas Registradas . . . . . . . . . . . . 31Termos e Condições . . . . . . . . . . . 31

© Copyright IBM Corp. 1998, 2013 iii

||

||||||||||||||

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

iv IBM i: Administração de Banco de Dados

Administração de Banco de Dados

O DB2 for i fornece funções de administração de banco de dados, de backup e recuperação, de consulta ede segurança.

Você também pode explorar outras informações do banco de dados utilizando a árvore de navegaçãoprincipal ou o Localizador de Informações do Banco de Dados.

O que Há de Novo no IBM i 7.2Leia sobre informações novas ou significativamente alteradas para a coleta de tópicos de administraçãode Banco de Dados.

IBM® Advanced Data Security for i

IBM Advanced Data Security for i apresenta row and column access control (RCAC), como umaalternativa de segurança centralizada em dados.

Diferenças de Consulta Nativa e Aberta

Esta seção explica as diferenças do quando um arquivo com RCAC é aberto por nativo comparado aoarquivo de consulta aberto.

Como Saber o Que É Novo ou Que Foi Alterado

Para ajudar a ver onde as alterações técnicas foram feitas, o centro de informações utiliza:v A imagem marca onde começam as informações novas ou alteradas.v A imagem marca onde terminam as informações novas ou alteradas.

Nos arquivos PDF, você poderá ver barras de revisão (|) na margem esquerda das informações novas oualteradas.

Para localizar outras informações sobre as novidades ou alterações neste release, consulte Memorandopara Usuários.

Arquivo PDF para Administração de Banco de DadosVocê pode visualizar e imprimir um arquivo PDF dessas informações.

Para visualizar ou fazer o download da versão em PDF deste documento, selecione Administração dobanco de dados.

Salvando Arquivos PDF

Para salvar um PDF em sua estação de trabalho para exibição ou impressão:1. Clique com o botão direito do mouse no link do PDF no seu navegador.2. Clique na opção que salva o PDF localmente.3. Navegue para o diretório no qual deseja salvar o PDF.4. Clique em Salvar.

© Copyright IBM Corp. 1998, 2013 1

|

||

|

||

|

||

|

|

|

|

||

||

Fazendo Download do Adobe Reader

É necessário ter o Adobe Reader instalado em seu sistema para visualizar ou imprimir esses PDFs. Épossível fazer download de uma cópia gratuita no Web site da Adobe

(www.adobe.com/products/acrobat/readstep.html) .

Administração de Banco de DadosO DB2 for i fornece vários métodos para configurar e gerenciar bancos de dados.Conceitos relacionados:Gerenciamento de Diário

Acessando Dados Através de Interfaces do ClienteÉ possível acessar os dados do DB2 for i através de interfaces do cliente no servidor, tais como driverJava Database Connectivity (JDBC), o driver Open Database Connectivity (ODBC), o IBM i PortableApplication Solutions Environment (IBM i PASE), o OLE DB Provider, o .Net Provider, o Net.Data, ou aDistributed Relational Database Architecture (DRDA).

Acessando Dados com JavaVocê pode acessar dados do DB2 for i em seus programas Java™ utilizando o driver JDBC (Java DatabaseConnectivity) que está incluído com o programa licenciado IBM Developer Kit para Java.

O driver permite executar as seguintes tarefas:v Acessar arquivos do banco de dados.v Acessar funções do banco de dados JDBC com SQL (Linguagem de Consulta Estruturada) incorporada

para Java.v Executar instruções SQL e processar resultados.Conceitos relacionados:Acessando o Banco de Dados do System i5 com o IBM Developer Kit para Driver JDBC do Java

Acessando Dados com o DominoVocê pode utilizar o IBM Lotus Domino para i5/OS para integrar dados dos bancos de dados do DB2 fori e bancos de dados do Domino em ambas as direções.

Para obter vantagem dessa integração, você precisa entender e gerenciar como as autorizações funcionamentre os dois tipos de bancos de dados.Conceitos relacionados:Lotus Domino para i5/OS

Acessando Dados com o ODBCVocê utiliza o driver ODBC (IBM i Access for Windows Open Database Connectivity) para permitir queaplicativos clientes ODBC compartilhem efetivamente dados entre si e com o servidor.Conceitos relacionados:Administração do ODBC

Acessando Dados com o IBM i PASEO IBM i Portable Application Solutions Environment (IBM i PASE) é um ambiente de tempo de execuçãointegrado para AIX, UNIX ou outros aplicativos que estão em execução no sistema operacional do IBM i.O IBM i PASE suporta a CLI (Interface de Nível de Chamada) do DB2 for i.Conceitos relacionados:Banco de Dados

2 IBM i: Administração de Banco de Dados

Acessando Dados com o Provedor IBM i Access for Windows OLE DBO Provedor IBM i Access for Windows OLE DB, junto com o Kit de Ferramentas do Programador, facilitao desenvolvimento de aplicativos cliente/servidor do IBM i a partir do PC do cliente Microsoft Windows.

O Provedor IBM i Access for Windows OLE DB fornece interfaces de acesso no nível de registro dosprogramadores para arquivos de banco de dados do DB2 for i. Além disso, ele fornece suporte para SQL,filas de dados, programas e comandos.Referências relacionadas:Provedor OLE DB do System i Access para Windows

Acessando Dados com o IBM i Access para Windows .Net ProviderO acesso ao IBM i Access para Windows .Net Provider.

O IBM i Access para Windows .Net Provider permite o acesso ao DB2 para IBM i através da interfaceMicrosoft ADO.NET.

Acessando Dados com o Net.DataO Net.Data é um aplicativo executado em um servidor. Você pode utilizar o Net.Data para criarfacilmente documentos da Web dinâmicos que são chamados de macros da Web. As macros da Webcriadas para o Net.Data têm a simplicidade de HTML com a funcionalidade de aplicativos CGI-BIN.

O Net.Data facilita a inclusão de dados ativos em páginas da Web estáticas. Dados ativos inclueminformações que estão armazenadas em bancos de dados, arquivos, aplicativos e serviços do sistema.Conceitos relacionados:Aplicativos Net.Data para o Servidor HTTP

Acessando Dados Através de uma Partição do LinuxA IBM e vários distribuidores Linux cooperaram para integrar o sistema operacional Linux com aconfiabilidade da arquitetura IBM i.

O Linux traz uma nova geração de aplicativos baseados na Web para o produto IBM i. A IBM modificouo kernel Linux PowerPC para executar em uma partição lógica secundária e contribuiu para a volta dokernel à comunidade Linux.

Acessando Dados Utilizando o DRDA (Distributed Relational DatabaseArchitecture)Um banco de dados relacional distribuído consiste em um conjunto de objetos SQL que são espalhados entresistemas de computador interconectados. Cada banco de dados relacional tem um gerenciador de bancode dados relacional para gerenciar as tabelas em seu ambiente.

Os gerenciadores de banco de dados comunicam-se e cooperam entre si de forma que um determinadogerenciador de banco de dados acesse as instruções SQL em execução em um banco de dados relacionalem outro sistema.Referências relacionadas:Função do Banco de Dados Relacional Distribuído e SQL

Alterando e Gerenciando Objetos de Banco de DadosO DB2 for i fornece métodos SQL (Linguagem de Consulta Estruturada) e de sistema para alterar egerenciar os objetos de bancos de dados.

Há vários métodos disponíveis para trabalhar com objetos de banco de dados. É possível usar a interfaceIBM Navigator for i, instruções SQL ou comandos do IBM i.Conceitos relacionados:Tarefas de Banco de Dados do Navegador do System i

Administração 3

Referências relacionadas:Terminologia: Acesso de Arquivo SQL versus Tradicional

Criando Objetos de Banco de DadosA primeira etapa no desenvolvimento do banco de dados é criar objetos que conterão os dados. Vocêpode criar tabelas, visualizações e índices com SQL. Também pode criar arquivos físicos e lógicosutilizando a interface de sistema tradicional.

Você pode criar objetos de banco de dados utilizando o IBM Navigator for i, o SQL ou a interface desistema tradicional.Conceitos relacionados:Tarefas de Banco de Dados do Navegador do System iReferências relacionadas:Terminologia: Acesso de Arquivo SQL versus Tradicional

Assegurando a Integridade dos DadosO DB2 for i fornece diversas medidas de integridade, incluindo limitações, programas do acionador econtrole de comprometimento.

Restrições, acionadores e controle de comprometimento podem proteger seu banco de dados contrainserções, exclusões e atualizações inadvertidas. As restrições dizem basicamente como os valores dedados podem ser alterados, enquanto os acionadores são ações automáticas que iniciam ou acionam umevento, como uma atualização de uma tabela específica.Conceitos relacionados:Controle de Consolidação“Trabalhando com Acionadores e Restrições” na página 5Você pode utilizar acionadores ou restrições para gerenciar dados nas tabelas de bancos de dados.

Importando e Exportando Dados entre SistemasImportar dados é o processo de recuperação de dados de origens externas, enquanto exportar dados é oprocesso de extrair dados de DB2 for i e copiá-los para outro sistema.

Importar dados para o DB2 for i pode ser um evento único ou pode ser uma tarefa contínua, comoatualizações semanais com o objetivo de fazer relatórios comerciais. Esses tipos de operações demovimentação de dados são normalmente realizados por meio das funções importar, exportar oucarregar.Conceitos relacionados:Copiando um ArquivoCopiando ArquivosCopiando Dados do Arquivo de OrigemMovendo um ArquivoTarefas relacionadas:Importando e Exportando DadosCarregando e Descarregando Dados de Sistemas Diferentes do System i

Trabalhando com Vários Bancos de DadosO sistema fornece um banco de dados do sistema (identificado como SYSBAS) e a habilidade paratrabalhar com um ou mais bancos de dados de usuários.

4 IBM i: Administração de Banco de Dados

Os bancos de dados do usuário são implementados através do uso de conjuntos de discos independentes,que são configurados na função de gerenciamento de disco doSystem i Navigator. Depois que umconjunto de discos independente é configurado, ele é exibido como outro banco de dados na pasta Bancode dados do System i Navigator.

Quando você expande um sistema no System i Navigator e, em seguida, expande os Bancos de Dados, éexibida uma lista de bancos de dados com os quais você pode trabalhar. Para estabelecer uma conexãocom um banco de dados, expanda o banco de dados com o qual deseja trabalhar.Conceitos relacionados:Gerenciamento de Disco

Trabalhando com Acionadores e RestriçõesVocê pode utilizar acionadores ou restrições para gerenciar dados nas tabelas de bancos de dados.

Um acionador é um tipo de programa que é chamado automaticamente sempre que uma ação especificadaé executada em uma tabela específica. Os acionadores são úteis para manter as trilhas de auditoria,detectar condições excepcionais, manter relacionamentos no banco de dados e executar aplicativos eoperações que coincidem com a operação de alteração.

Uma restrição é uma restrição ou limitação colocada no banco de dados. As restrições são implementadasno nível da tabela. Você pode utilizar as restrições para criar integridade de referência no banco de dados.

Você pode trabalhar com acionadores e restrições utilizando o IBM Navigator for i, o SQL ou a interfacede sistema tradicional.Conceitos relacionados:Tarefas de Banco de Dados do Navegador do System i

Gravando Programas do DB2O DB2 for i fornece vários métodos para gravação de aplicativos que acessam ou atualizam dados.

Você pode gravar programas de SQL incorporados, funções externas, procedimentos externos, aplicativosCLI do DB2 for i e programas do acionador.Conceitos relacionados:Programação de SQL IntegradaGravando um DB2 para Aplicativo CLI do i5/OSTarefas relacionadas:Criando Programas do AcionadorReferências relacionadas:Definindo um Procedimento ExternoGravando UDFs como Funções Externas

Backup e Recuperação do Banco de DadosSalvar os dados podem exigir tempo e requer disciplina. Entretanto, é crucial fazer o backup dos dados,pois nunca se sabe quando será necessário fazer uma recuperação deles.Conceitos relacionados:Backup e RecuperaçãoGerenciamento de DiárioRecuperando e Restaurando seu Banco de Dados

Administração 5

Administração de Banco de Dados DistribuídaCom o DB2 for i, você pode trabalhar com bancos de dados que são distribuídos entre vários sistemas.Conceitos relacionados:Programação do Banco de Dados Distribuído

Consultas e RelatóriosVocê pode utilizar o SQL, o comando Abrir Arquivo de Consulta (OPNQRYF), a API de Consulta(QQQQRY), o Open Database Connectivity (ODBC) ou o programa licenciado IBM Query for i para criare executar consultas.

Uma das tarefas mais comuns executadas com o banco de dados é a recuperação de informações. Osistema fornece vários métodos para criar e executar consultas e relatórios.

Você pode utilizar uma instrução SQL para recuperar informações. Essa instrução SQL é chamada query.A consulta faz procuras nas tabelas armazenadas no banco de dados para localizar a resposta à perguntaenviada com a instrução SQL. A resposta é expressa como um conjunto de linhas, conhecido comoconjunto de resultados. Após a execução de uma consulta, você também pode criar um relatório paraexibir os dados fornecidos no conjunto de resultados.

Além disso, para utilizar o SQL, você pode utilizar outras funções e produtos para criar e executarconsultas e relatórios. Consulte as seguintes informações para obter detalhes.v Visão Geral do IBM DB2 Web Query para IBM i

v Consulta para IBM i

v Query Management Programming

v Query Manager Use

Além disso, você pode construir as instruções SQL SELECT, INSERT, UPDATE e DELETE na janelaAssistente de SQL do System i Navigator.Conceitos relacionados:Programação de SQLTarefas relacionadas:Construindo Instruções SQL com o Assistente de SQLReferências relacionadas:comando Abrir Arquivo de Consulta (OPNQRYF)API de Consulta (QQQQRY)

SegurançaAutorizar os usuários a dados no sistema e a níveis de dados permite controlar o acesso ao banco dedados.

A proteção de banco de dados requer que você estabeleça o direito à propriedade e a autoridade públicaaos objetos e à autoridade específica para os aplicativos.Conceitos relacionados:Programas de Saída do Controle de Acesso do Servidor DRDAConcedendo Autoridade de Arquivo e dos DadosLimitando Acesso a Campos Específicos em um Arquivo de Banco de Dados

6 IBM i: Administração de Banco de Dados

SegurançaEspecificando Autoridade PúblicaUtilizando Recursos de Arquivo de Banco de Dados para Controlar as Operações de E/SUtilizando Arquivos Lógicos para Proteger os Dados

Opções de Autoridade para Análise e Ajuste de SQLEste tópico descreve as opções de autoridade para análise e ajuste de SQL.

O DB2 for i possui um rico conjunto de comandos, procedimentos armazenados, APIs e ferramentas paraanálise e ajuste dos aspectos de desempenho dos aplicativos de banco de dados. Anteriormente, umresponsável pela segurança do sistema precisaria conceder autoridade especial de usuário *JOBCTL parapossibilitar que analistas e administradores de banco de dados utilizassem as ferramentas de banco dedados. Como a autoridade *JOBCTL permite que um usuário altere muitas configurações críticas dosistema que não estão relacionadas à atividade do banco de dados, não era uma decisão fácil para osresponsáveis pela segurança conceder esta autoridade. Em alguns casos, esta era uma decisão fácil e*JOBCTL não era concedido aos analistas de banco de dados, proibindo assim o uso do conjunto integraldas ferramentas de banco de dados.

Nota: Para obter mais informações sobre substituições de configuração para o arquivo QAQQINI,consulte o link a seguir: Suporte para Substituição do Arquivo QAQQINI.

Agora, o responsável pela segurança possui a capacidade adicional de autorizar o acesso às ferramentasde análise de banco de dados e ao Cache de Planos SQL. O DB2 for i que aproveita a vantagem dacapacidade de uso da função disponível no sistema operacional. Um novo grupo de uso da funçãochamado QIBM_DB foi criado com os IDs de função no grupo QIBM_DB:1. QIBM_DB_

SQLADM (tarefas do Administrador de Banco de Dados)2. QIBM_DB_SYSMON (tarefas de Informações do Banco de Dados)3. QIBM_DB_DDMDRDA (Acesso de Servidor de Aplicativos DDM & DRDA)4. QIBM_DB_ZDA (Acesso de Servidor de Aplicativos da Caixa de Ferramentas)5. QIBM_DB_SECADM (Administrador de Segurança de Banco de Dados)

O responsável pela segurança agora tem a flexibilidade para conceder autoridades: conceder a autoridadeespecial *JOBCTL ou autorizar um usuário ou grupo para a Função de Administrador de Banco de Dadosdo IBM i através de Administração de Aplicativos no System i Navigator do IBM Navigator for i. Ocomando Change Function Usage (CHGFCNUSG), com um ID de função de QIBM_DB_SQLADM, também pode ser utilizado para alterar a lista de usuários que têm permissão para executaroperações de Administração de Banco de Dados. Os controles de uso de função permitem que grupos ouusuários específicos tenham a autoridade permitida ou negada. O comando CHGFCNUSG tambémfornece um parâmetro que pode ser utilizado para conceder autoridade de uso de função para qualquerusuário que possua a autoridade especial de usuário *ALLOBJ. (por exemplo, ALLOBJAUT(*USED))

A função Administrador de Banco de Dados é necessária sempre que um usuário está analisando evisualizando dados de desempenho de SQL. Algumas das funções mais comuns são a exibição deinstruções do Cache de Planos SQL, a análise dos Monitores de Desempenho de SQL e de CapturasInstantâneas do Cache de Planos SQL e a exibição dos detalhes de SQL de uma tarefa que não a suaprópria.

O uso da função de administrador de banco de dados é uma alternativa para a concessão de *JOBCTL,mas ela não substitui o requisito de possuir a autoridade de objeto correta. Para ativar tarefas doadministrador de banco de dados que não estão relacionadas à análise de desempenho, consulte a tarefaespecífica para obter detalhes sobre os requisitos de autorização. Por exemplo, para permitir que um

Administração 7

|

|

|

administrador reorganize uma tabela, é necessário que ele tenha autoridades de objeto concedidas, quenão são cobertas pelo QIBM_DB_SQLADM.

Além do QIBM_DB_SQLADM, o comando Change Function Usage (CHGFCNUSG), com um ID de função deQIBM_DB_SYSMON, também pode ser utilizado para alterar a lista de usuários que têm permissão paraexecutar operações de Informações do Banco de Dados.

A função Informações do Banco de Dados fornece muito menos autoridade do que a de Administradorde Banco de Dados. O uso principal é permitir que um usuário examine propriedades de banco de dadosde alto nível. Por exemplo, um usuário que não possui *JOBCTL ou QIBM_DB_SQLADM, poderia ter permissão para visualizar as propriedades do Cache de Planos SQL se recebesse aconcessão de autoridade para QIBM_DB_SYSMON.

Para trabalhar com o uso da função de grupo de bancos de dados QIBM_DB do System i Navigator, sigaestas etapas:1. Ative Application Administration, conforme mostrado na figura 1.2. Expanda as pastas ‘IBM i' e ‘Database' sob a guia Host Applications, conforme mostrado na figura 2.3. Customize o uso da função Database Administrator (QIBM_DB_

SQLADM), conforme mostrado na figura 3.

Neste exemplo, o responsável pela segurança determinou que desejava configurar um grupo denominadoDbagroup que conteria todos os usuários para os quais desejava fornecer este nível de autoridade. E eledesejou explicitamente negar o acesso para Slfuser. Agora, o responsável pela segurança possui um localconveniente e facilmente monitorado para visualizar e autorizar usuários a estas funções.

Figura 1. Ative Application Administration.

8 IBM i: Administração de Banco de Dados

Figura 2. Expanda o grupo Database

Administração 9

Figura 3. Altere as configurações de uso da função QIBM_DB_SQLADM

10 IBM i: Administração de Banco de Dados

A Tabela 1 descreve algumas das mudanças de autorização relacionadas aos comandos, ProcedimentosArmazenados e APIs do DB2.

Tabela 1. Requisitos de Autorização para Desempenho e Análise do Banco de Dados

Ação do Usuário *JOBCTLQIBM_DB_SQLADM QIBM_DB_SYSMON

SemAutoridade

SET CURRENT DEGREE (instruçãoSQL)

Permitido Permitido Não Permitido Não Permitido

Comando CHGQRYA objetivando umatarefa de um usuário diferente

Permitido Permitido Não Permitido Não Permitido

Comandos STRDBMON ouENDDBMON objetivando uma tarefade um usuário diferente

Permitido Permitido Não Permitido Não Permitido

Comandos STRDBMON ouENDDBMON objetivando uma tarefaque corresponde ao usuário atual

Permitido Permitido Permitido Permitido

API QUSRJOBI() formato 900 ouDetalhes SQL do System i Navigatorpara a Tarefa

Permitido Permitido Permitido Não Permitido

Administração 11

Tabela 1. Requisitos de Autorização para Desempenho e Análise do Banco de Dados (continuação)

Ação do Usuário *JOBCTLQIBM_DB_SQLADM QIBM_DB_SYSMON

SemAutoridade

Procedimento DUMP PLAN CACHEPROPERTIES

Permitido Permitido Permitido Não Permitido

Visual Explain dentro de ExecutarScripts SQL

Permitido Permitido Permitido Permitido

Visual Explain fora de Executar ScriptsSQL

Permitido Permitido Não Permitido Não Permitido

Procedimento ANALYZE PLANCACHE

Permitido Permitido Não Permitido Não Permitido

Procedimento DUMP PLAN CACHE Permitido Permitido Não Permitido Não Permitido

Procedimento MODIFY PLAN CACHE Permitido Permitido Não Permitido Não Permitido

Procedimento MODIFY PLAN CACHEPROPERTIES (atualmente não verificaa autoridade)

Permitido Permitido Não Permitido Não Permitido

Procedimento CHANGE PLANCACHE SIZE (atualmente não verificaa autoridade)

Permitido Permitido Não Permitido Não Permitido

Procedimento START PLAN CACHEEVENT MONITOR

Permitido Permitido Não Permitido Não Permitido

Procedimento END PLAN CACHEEVENT MONITOR

Permitido Permitido Não Permitido Não Permitido

Procedimento END ALL PLANCACHE EVENT MONITORS

Permitido Permitido Não Permitido Não Permitido

Row and Column Access Control (RCAC)O Row and column access control (RCAC) fornece uma alternativa centralizada em dados para atingir asegurança de dados.

O RCAC coloca o controle de acesso no nível da tabela em torno de si mesmo. As regras SQL criadas emlinhas e colunas são a base da implementação deste recurso.

Termos do RCAC

v Tabela base - A tabela (arquivo físico), a permissão ou máscara é incluída.v Objeto dependente - Qualquer referência a objeto (arquivo, esquema, função ou outro objeto),

permissão ou máscara.v QIBM_DB_SECADM – O uso da função identifica o usuário que deve estar autorizado para manipular

todas as ações relacionadas a permissões e máscaras.v Row and Column Access Control (RCAC) – O controle de acesso é o recurso para controlar o acesso

aos dados usando permissões e máscaras.v Permissão - Uma permissão de linha define uma regra de controle de acesso de linha para linhas de

uma tabela.v Máscara - Uma máscara de coluna define uma regra de controle de acesso da coluna para uma coluna

específica em uma tabela.v RULETEXT – A expressão a ser usada pela permissão ou máscara.v 5770-SS1 IBM Advanced Data Security for i (Opção 47) – O produto que precisa ser solicitado e

instalado para poder:– criar permissões de linha.

12 IBM i: Administração de Banco de Dados

|

||

||

|

|

||

||

||

||

||

|

||

|

– criar máscaras de coluna.– executar acesso ao banco de dados por meio de objetos que têm RCAC ativo.

Visão GeralIBM Advanced Data Security for i apresenta RCAC como uma camada extra de segurança de dados.

O RCAC fornece controle de acesso a uma tabela no nível baixo, nível da coluna ou ambos. O RCACpode ser usado para complementar o modelo de privilégios da tabela. Para estar em conformidade comvários regulamentos do governo, é possível implementar procedimentos e métodos para assegurar que asinformações estejam protegidas adequadamente. Os indivíduos em sua organização têm acesso permitidoa somente o subconjunto de dados que é necessário para executar suas atividades de trabalho. Porexemplo, os regulamentos do governo em sua área podem declarar que um médico está autorizado avisualizar os registros médicos de seus próprios pacientes, mas não de outros pacientes. Os mesmosregulamentos também podem declarar que, a menos que um paciente dê seu consentimento, umprovedor de assistência médica não terá acesso permitido a informações pessoais do paciente, como onúmero do telefone residencial dos pacientes. É possível usar o RCAC para assegurar que seus usuáriossó tenham acesso aos dados necessários para seu trabalho. Por exemplo, o RCAC pode filtrar informaçõese dados do paciente para incluir somente esses dados, que um determinado médico está autorizado avisualizar.

Outros pacientes não existem até onde sabe o médico. Da mesma forma, quando um representante deserviço do paciente consulta a tabela do paciente no mesmo hospital, ele pode visualizar as colunas nomedo paciente e número de telefone, mas a coluna histórico médico é mascarada para eles. Se os dadosforem mascarados, um valor NULL ou alternativo será exibido em vez de o histórico médico real. ORCAC possui as vantagens a seguir:1. Nenhum usuário do banco de dados está isento inerentemente das regras do RCAC. Mesmo

autoridades de alto nível, como usuários com toda a autoridade de objeto (autoridade especial (como*ALLOBJ)) não estão isentos dessas regras. Somente usuários com a autoridade QIBM_DB_SECADMpodem gerenciar o RCAC em um banco de dados. Portanto, é possível usar o RCAC para impedirque os usuários com autoridade de objeto total acessem todos os dados em um banco de dados.

2. Os dados da tabela são protegidos independentemente de como uma tabela é acessada. Aplicativos,ferramentas de consulta e de geração de relatórios improvisadas estão todas sujeitas às regras decontrole de acesso. A execução é centralizada nos dados.

3. Nenhuma mudança de aplicativo é necessária para aproveitar esta camada adicional de segurança dedados. O RCAC é estabelecido e definido de modo que não fica aparente aos aplicativos existentes.Entretanto, o RCAC representa uma mudança importante no paradigma no sentido de que não é maiso que está sendo perguntado, mas sim quem perguntou. Mesmo que dois usuários possam executar oque parece serem consultas idênticas, quando predicados de permissão de linha são incluídos naconsulta, esses dois usuários podem observar um conjunto de resultados diferente. Estecomportamento é o intento exato da solução. Significa que os editores de telas e DBAs devem estarcientes de que as consultas não veem toda a imagem em termos de dados na tabela a menos que aautorização ao RCAC seja concedida.

4. Antes dos controles do RCAC para a proteção de dados centralizada em dados, os usuários do DB2for i protegeriam os dados por meio da criação de várias visualizações SQL ou arquivos lógicosSelect-omit. Embora esta técnica de confiar em uma visualização/arquivo lógico para limitar dadosatinja o objetivo, ela cria vários problemas:a. Os aplicativos tinham de ser copiados para funcionar com visualizações especializadas, em vez de

um objeto comum.b. Em grandes instalações, o número de visualizações que existem para este propósito cresce

rapidamente para um número grande, resultando em considerações de gerenciamento de objetosadicional como Salvar/Restaurar.

c. O responsável pela segurança tem de passar um tempo ajustando autorizações para muitosobjetos.

Administração 13

|

|

|

|

|||||||||||||

|||||

|||||

|||

|||||||||

||||

||

|||

||

d. Para arquivos lógicos select-omit, o DB2 for i tem de gastar ciclos de processamento para mantercada arquivo lógico select-omit atualizado conforme o(s) objeto(s) subjacente(s) muda(m).

Além de atingir os benefícios dos dados naturalmente protegidos ao implementar o RCAC, os clientes doDB2 for i podem aposentar as muitas visualizações que existem unicamente para proteger dados.

IBM Advanced Data Security for i

IBM Advanced Data Security for i é uma opção instalável que é usada para gerenciar políticas desegurança reforçando o RCAC com permissões e máscaras.

Se o IBM Advanced Data Security for i não estiver instalado, consulte Instalando, Fazendo Upgrade ouExcluindo o IBM i/OS® e Software Relacionado para obter informações sobre instalar programaslicenciados extra. Para instalar o IBM Advanced Data Security for i, use a opção 47 na lista de opçõesinstaláveis para o sistema operacional.

Tabelas que contêm permissões ou máscaras ativadas do RCAC podem ser restauradasindependentemente se o IBM Advanced Data Security for i está instalado ou não. Entretanto, se a opçãonão estiver instalada, as permissões e máscaras não poderão ser criadas e as tabelas, visualizações ouíndices que contêm permissões ou máscaras ativas não poderão ser acessados.

Separação de Obrigações

A separação de obrigações ajuda as empresas a estarem em conformidade com os regulamentos domercado ou requisitos organizacionais e simplifica o gerenciamento de autoridades. A separação deobrigações geralmente é usada para impedir atividades fraudulentas ou erros por uma única pessoa. Elafornece a capacidade para que funções administrativas sejam divididas entre indivíduos sem sobrepor asresponsabilidades, para que um usuário não possua autoridade ilimitada, como com a autoridade*ALLOBJ.

Por exemplo, suponha que um negócio tenha designado a responsabilidade de gerenciar a segurança noIBM i para Theresa. Antes da liberação do IBM i 7.2, para conceder privilégios, Theresa tinha de ter osmesmos privilégios que estava concedendo. Assim, para conceder privilégios *USE à tabela PAYROLL,Theresa tinha de ter as autoridades *OBJMGT e *USE (ou um nível superior de autoridade, como*ALLOBJ). Este requisito permitiu que Theresa acessasse os dados na tabela PAYROLL mesmo que adescrição do cargo dela fosse somente gerenciar a segurança.

No IBM i 7.2, o uso da função, QIBM_DB_SECADM, fornece a um usuário a capacidade de conceder aautoridade, revogar a autoridade, alterar a propriedade ou alterar o grupo primário. Isso é feito sem daracesso ao objeto ou, no caso de uma tabela de banco de dados, aos dados que estão na tabela oupermitindo outras operações na tabela. O uso da função QIBM_DB_SECADM só pode ser concedido porum usuário com autoridade especial *SECADM e pode ser atribuído a um usuário ou grupo.

QIBM_DB_SECADM também é responsável por administrar o RCAC. O RCAC restringe quais linhas umusuário tem permissão de acesso em uma tabela e se um usuário tem permissão de ver informações emcertas colunas de uma tabela.

A melhor prática é que o administrador do RCAC tenha o uso da função QIBM_DB_SECADM eabsolutamente nenhum privilégio de dados. O administrador do RCAC pode implementar e manter osconstrutos do RCAC e seria incapaz de conceder a si mesmo o acesso não autorizado aos dados.

Permissões e MáscarasO RCAC é um modelo no qual um administrador de segurança gerencia políticas de privacidade esegurança.

14 IBM i: Administração de Banco de Dados

||

||

|

||

||||

||||

|

||||||

||||||

|||||

|||

|||

|

||

O RCAC permite que todos os usuários acessem a mesma tabela, ao contrário de visualizaçõesalternativas de uma tabela. O RCAC, no entanto, restringe o acesso aos dados na tabela baseada que estáacima nas permissões de usuário individual ou regras conforme especificado por uma política associada àtabela. Há dois conjuntos de regras. Um conjunto de regras opera em linhas (permissões) e o outro emcolunas (máscaras). Para criar permissões e máscaras, o IBM Advanced Data Security for i deve serinstalado.

Permissão de linhav Uma permissão de linha define uma regra de controle de acesso de linha para uma tabela específica.v Uma regra de controle de acesso de acesso de linha é uma condição de procura SQL que descreve qual

conjunto de linhas um usuário pode acessar.v A definição de cada permissão de linha pode referenciar o usuário ou grupo na condição de procura.

Se diversas permissões de linha forem definidas para uma tabela e o controle de acesso de linha estiverativado, a condição de procura em cada permissão de linha será conectada pelo operador OR lógicopara formar a condição de procura do controle de acesso de linha. Essa condição de procura decontrole de acesso de linha é aplicada sempre que a tabela é acessada. Ela atua como um filtro natabela antes de quaisquer outras operações especificadas pelo usuário, como predicados e ordenaçãosão processados. Ela atua como a cláusula WITH CHECK OPTION de uma visualização para assegurarque uma linha seja inserida ou atualizada conforme as definições das permissões de linha em umainstrução INSERT, UPDATE ou MERGE.

Máscara de colunav Uma máscara de coluna define uma regra de controle de acesso da coluna para uma coluna específica

em uma tabela.v Uma regra de controle de acesso de coluna é uma expressão CASE SQL que descreve quais valores de

coluna um usuário tem permissão de ver e sob quais condições.v A definição de cada máscara de coluna pode referenciar o usuário ou grupo nas condições de procura

na cláusula CASE WHEN. Embora diversas colunas em uma tabela possam ter máscaras de coluna,somente uma máscara de coluna pode ser criada para uma única coluna. Quando o controle de acessode coluna é ativado para a tabela, a expressão CASE na definição de máscara de coluna é aplicada nacoluna de saída para determinar os valores mascarados retornados para um aplicativo. O aplicativo demáscaras de coluna afeta o resultado final somente. Isso não impacta as operações, como predicados eordenação em uma instrução SQL.

O RCAC pode ser ativado para uma tabela antes ou após as permissões de linha ou máscaras de colunaserem criadas para a tabela. Se as permissões de linha ou máscaras de coluna existirem, ativar o controlede acesso de linha e coluna simplesmente torna as permissões ou máscaras efetivas. Se as permissões delinha ainda não existirem, ativar o controle de acesso de linha para uma tabela significa que o DB2 for igera uma permissão de linha padrão que impede qualquer acesso aos dados na tabela.

Instruções SQLAs instruções criar, alterar e eliminar SQL suportam a implementação de RCAC com permissões emáscaras.v Criar Permissãov Alterar Permissãov Eliminar Permissãov Criar Máscarav Alterar Máscarav Eliminar Máscarav Alterar Funçãov Alterar Acionadorv Alterar Tabela

Administração 15

||||||

|

|

||

|||||||||

|

||

||

|||||||

|||||

|

||

|

|

|

|

|

|

|

|

|

Autorização

O ID de autorização da instrução SQL deve estar autorizado à função de Administrador de Segurança doBanco de Dados do IBM i. Consulte Autoridade administrativa.

Funções ProtegidasAs funções devem ser definidas como protegidas antes de poderem ser chamadas nas definições doRCAC.

O atributo SECURED é necessário se o UDF for referenciado na definição de uma permissão de linha oumáscara de coluna, porque o UDF terá acesso aos dados antes do aplicativo do RCAC. O atributoSECURED também é necessário para um UDF que é chamado em uma instrução SQL quando osargumentos da função referenciam colunas que estão ativadas com o controle de acesso da coluna.

Proteger AcionadoresOs acionadores definidos em uma tabela com o RCAC ativado devem estar protegidos.

O atributo SECURED é necessário para um acionador quando a tabela associada possui o RCAC ativadoou a visualização associada cuja tabela subjacente está ativada com o RCAC. Se um acionador existir, masnão estiver protegido, o RCAC não poderá ser ativado para a tabela associada.

Autoridade administrativaA autorização para a função de Administrador de Segurança de Banco de Dados do IBM i pode serdesignado por meio de um Administração do Aplicativo em IBM Navigator for i.

O comando Change Function Usage Information (CHGFCNUSG), com um ID da função deQIBM_DB_SECADM, pode ser usado para alterar a lista de usuários autorizados.

Melhores Práticas ao Usar Permissões e MáscarasAs permissões e máscaras podem ser criadas para uma tabela em um número de implementaçõesdiferentes. Esta seção explicará algumas das implementações que podem ser usadas para criar permissõese máscaras.

Criando Permissões e MáscarasUm número de considerações precisa ser determinado para decidir a melhor forma de criar permissõesou máscaras.

Criar permissões ou máscaras quando o row or column access control está ativo

A tarefa que está criando a permissão ou máscara obtém um bloqueio restrito na tabela base. Se o row orcolumn access control estiver ativo, a tabela base não terá permissão de leitura até a criação da permissãoou máscara estar concluída. Os aplicativos que leem a tabela base precisam ser encerrados até que aspermissões ou máscaras sejam incluídas.

Criando permissões ou máscaras quando o row or column access control não está ativo

A tarefa que está criando a permissão ou máscara obtém um bloqueio restrito na tabela base. Entretanto,a tabela base tem permissão de ser lida até que o row or column access control seja ativado. Osaplicativos que leem a tabela base não têm de ser encerrados.

Única Permissão com Todos os Usuários:

Exemplo 1: Usando uma única permissão com todos os usuários definidos na permissão.

16 IBM i: Administração de Banco de Dados

|

||

|

||

||||

|

|

|||

|

||

||

|

|||

|||

|

||||

|

|||

|

|

CREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)CREATE PERMISSION MY_LIB.PERM1 ON MY_LIB.PERMISSION_TABLE FOR ROWS WHERE

VERIFY_GROUP_FOR_USER(CURRENT_USER,’USER1’,’USER2’,’USER3’) = 1ENFORCED FOR ALL ACCESS ENABLE

ALTER TABLE MY_LIB.PERMISSION_TABLE ACTIVATE ROW ACCESS CONTROL/***************************************************************//* Conecte-se como USER1 *//***************************************************************/INSERT INTO MY_LIB.PERMISSION_TABLE VALUES(1) /* Permitido. */

A vantagem de uma única permissão é o melhor desempenho da consulta para aplicativos. Adesvantagem é incluir outro usuário, a permissão tem de ser eliminada e criada para incluir o novousuário.

Única Permissão com um Perfil de Grupo:

Exemplo 2: Usando uma única permissão com todos os usuários definidos na permissão com um perfildo grupo.

CREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)CREATE PERMISSION MY_LIB.PERM1 ON MY_LIB.PERMISSION_TABLE

AS P_GROUP FOR ROWS WHEREVERIFY_GROUP_FOR_USER(SESSION_USER,’PERM_GROUP’) = 1ENFORCED FOR ALL ACCESS ENABLE

ALTER TABLE MY_LIB.PERMISSION_TABLE ACTIVATE ROW ACCESS CONTROL/********************************************************************//* Conecte-se como USER1 que é um membro do grupo de usuários PERM_GROUP *//********************************************************************/INSERT INTO MY_LIB.PERMISSION_TABLE VALUES(1) /* Permitido. */

A vantagem de uma única permissão verificando um perfil do grupo significa que a permissão não temde alterar a inclusão de outro usuário. A desvantagem de cada consulta da tabela base, a funçãoVERIFY_GROUP_FOR_USER é verificada.

Única Permissão com uma Tabela Dependente:

Exemplo 3: Usando uma única permissão que os usuários definiram em uma tabela dependente.CREATE SCHEMA MY_LIBCREATE SCHEMA RCAC_DEPENDENTCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)CREATE TABLE RCAC_DEPENDENT.USERS (USERNAME CHAR (10))INSERT INTO RCAC_DEPENDENT.USERS

VALUES(’USER1 ’),(’USER2 ’),(’USER3 ’)CREATE TABLE MY_LIB.PERMISSION_TABLE (FIELD1 INT)CREATE PERMISSION MY_LIB.PERM1 ON MY_LIB.PERMISSION_TABLE

FOR ROWS WHERECURRENT_USER IN (SELECT USERNAME FROM RCAC_DEPENDENT.USERS)ENFORCED FOR ALL ACCESS ENABLE

ALTER TABLE MY_LIB.PERMISSION_TABLE ACTIVATE ROW ACCESS CONTROL/***********************************************************************//* Conecte-se como USER1 *//***********************************************************************/INSERT INTO MY_LIB.PERMISSION_TABLE VALUES(1) /* Permitido. */

A vantagem de uma única permissão verificando uma tabela dependente é incluir outro usuário, apermissão não tem de se alterar. A desvantagem é a consideração de desempenho de consultar a tabeladependente.

Administração 17

|||||||||||

|||

|

||

|||||||||||

|||

|

|

||||||||||||||||

|||

Única Permissão com um UDF:

Exemplo 4: Usando uma única permissão com um User Defined Function (UDF).CREATE SCHEMA RCAC_DEPENDENTCREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)CREATE OR REPLACE FUNCTION RCAC_DEPENDENT.UDF_PERMISSION

()RETURNS CHAR(10)LANGUAGE SQLMODIFIES SQL DATANO EXTERNAL ACTIONDETERMINISTICNOT FENCEDSECUREDBEGIN

DECLARE ALLOWS CHAR(10);IF (CURRENT_USER = ’USER1’) THEN

SET ALLOWS = ’ALLOWED ’;ELSE

SET ALLOWS = ’DISALLOWED’; END IF;RETURN ALLOWS;

END

CREATE PERMISSION MY_LIB.PERMISSION_USERON MY_LIB.PERMISSION_TABLE

FOR ROWS WHERERCAC_DEPENDENT.UDF_PERMISSION() = ’ALLOWED ’ENFORCED FOR ALL ACCESS ENABLE

ALTER TABLE MY_LIB.PERMISSION_TABLE ACTIVATE ROW ACCESS CONTROL

A vantagem de uma única permissão que verifica um UDF é incluir outro usuário, a permissão não temde se alterar. A desvantagem aparece quando o UDF é alterado. Durante a próxima abertura da tabelacom a permissão, a verificação deve ser feita para permitir que o novo UDF seja usado com a permissão.A verificação faz com que a permissão ou máscara seja gerada novamente uma vez para a tabela.

Permissões para Cada Usuário:

Exemplo 5: Usando diversas permissões, uma permissão para cada usuário.CREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)

CREATE PERMISSION MY_LIB.P1 ON MYLIB.PERMISSION_TABLEFOR ROWS WHERECURRENT_USER = ’USER1 ’ENFORCED FOR ALL ACCESS ENABLE

CREATE PERMISSION MY_LIB.P2 ON MY_LIB.PERMISSION_TABLEFOR ROWS WHERECURRENT_USER = ’USER2 ’ENFORCED FOR ALL ACCESS ENABLE

CREATE PERMISSION MY_LIB.P3 ON MY_LIB.PERMISSION_TABLEFOR ROWS WHERECURRENT_USER = ’USER3 ’ENFORCED FOR ALL ACCESS ENABLE

ALTER TABLE MY_LIB.PERMISSION_TABLE ACTIVATE ROW ACCESS CONTROL

18 IBM i: Administração de Banco de Dados

|

|

|||||||||||||||||||||||||||||

||||

|

|

|||||||||||||||||||

A vantagem de diversas permissões é a facilidade de uso de ter permissões individuais. A desvantagem éter de incluir outro usuário, uma nova permissão tem de ser incluída. A nova permissão causa umaregeneração da permissão composta usada para a tabela.

Atributos de Diversas Permissões:

Os atributos para cada permissão da tabela base precisam ser os mesmos.

Os atributos precisam ser os mesmos, porque quando a permissão é executada, os dados (linhas da tabelabase) são verificados para cada permissão. Por exemplo, o caso em que uma permissão está usando um*PERIOD como o ponto decimal e outra permissão está usando uma*COMMA. As permissões sãodiferentes, porque o tipo de ponto decimal esperado por cada permissão não é o mesmo. Os atributos aseguir podem alterar a execução da permissão:v DATFMT, TIMFMT, DATSEP, TIMSEP DECMPTv SRTSEQ e LANGIDv DECFLTRNDv Ponto decimal e DECRESULT

Se os atributos listados não forem os mesmos para cada permissão, um resultado inesperado poderá serretornado.

Nomes de Objetos Não Qualificados:

Os nomes de objetos não qualificados no RULETEXT se tornam qualificados para esquema durante acriação das permissões ou máscaras.

Por exemplo, criar permissões ou máscaras em um ambiente de teste faz com que os nomes de objetos setornem qualificados com o nome do esquema de teste. Portanto, é melhor qualificar o nome do esquemapara evitar confusão do nome do esquema.

CREATE SCHEMA MY_LIBCREATE SCHEMA RCAC_LIBCREATE TABLE MY_LIB.PERMISSION_TABLE (COLUMN1 INT)CREATE TABLE RCAC_LIB.DEPENDENT_TABLE (COLUMN1 INT)SET SCHEMA RCAC_LIBCREATE PERMISSION MY_LIB.PERMISSION_USE

ON MY_LIB.PERMISSION_TABLE FOR ROWSWHERE

COLUMN1 IN (SELECT COLUMN1 FROM DEPENDENT_TABLE)ENFORCED FOR ALL ACCESS ENABLE

/*******************************************************************//* A instrução selecionar mostrará RULETEXT como sendo qualificado. *//*******************************************************************/SELECT CHAR(RULETEXT,200) FROM QSYS2.SYSCONTROL

WHERE SCHEMA = ’MY_LIB’

/*******************************************************************//* O RULETEXT agora está qualificado. *//*******************************************************************/PERMISSION_TABLE.COLUMN1 IN(SELECT RCAC_LIB.DEPENDENT_TABLE.COLUMN1 FROM RCAC_LIB.DEPENDENT_TABLE)

Objetos DependentesUm número de considerações deve ser determinado para manipular objetos dependentes das permissõese máscaras.

Administração 19

|||

|

|

|||||

|

|

|

|

||

|

||

|||

||||||||||||||||||||||

|||

Propriedade:

Objetos dependentes de uma permissão ou máscara devem ser possuídos pelo perfil do usuário com aautoridade funcional QIBM_DB_SECADM e nenhuma autoridade de gerenciamento de objetos deve serconcedida a outros usuários.

Isso restringe a possibilidade de o objeto dependente ser manipulado por um usuário autorizado paraalterar uma permissão ou máscara para permitir acesso indesejado a dados.

Esquema:

Todas as tabelas dependentes ou visualizações de uma permissão ou máscara devem ser criadas em umesquema diferente do esquema da tabela base.

Se o usuário executar um Create Duplicate Object (CRTDUPOBJ) ou Restore (RSTOBJ) da tabela base paraum novo esquema, os nomes do esquema dos objetos dependentes não são alterados. Ao manter astabelas dependentes e visualizações em um esquema diferente após CRTDUPOBJ ou RSTOBJ da tabelabase, a tabela base recém-criada referencia os mesmos objetos dependentes que a tabela base original.

Se os objetos dependentes das permissões e máscaras estiverem no mesmo esquema, se o usuárioduplicar o esquema, as permissões e máscaras duplicadas referenciarão os objetos do esquema original.Portanto, ao clonar um esquema e os objetos nele, a melhor prática é usar o recurso Gerar SQL em umIBM i Navigator. Ao cancelar a seleção da opção "Objetos de Qualificação de Esquema", o script SQLresultante não conterá mais referências qualificadas do esquema nas permissões e máscaras. O usuáriopode preceder a execução do script SQL com uma instrução SET SCHEMA especificando o esquema dedestino.

Autoridade de Esquema:

O esquema que contém os objetos dependentes não deve permitir a autoridade de gerenciamento deobjetos para usuários.

Ao não conceder a autoridade de gerenciamento de objetos aos usuários, os objetos dependentes nãoterão permissão de serem manipulados por usuários.

UDFs Protegidos:

Uma função definida pelo usuário (UDF) SQL usada no RULETEXT de uma permissão ou máscara deveser marcada como SECURE.

Esta mesma regra se aplica a qualquer função que possa ser chamada com uma coluna mascaradaespecificada como um argumento. O atributo SECURE está armazenado no executável *PGM ou*SRVPGM que é chamado quando o UDF é chamado. Quando o *PGM/*SRVPGM para uma função SQLSECURED é restaurado, o atributo SECURE associado à função pode ser perdido a menos que um dosseguintes seja true:v O usuário que está fazendo a restauração está autorizado à função QIBM_DB_SECADM.v O usuário que está fazendo a restauração possui a autoridade especial *SAVSYS.v O usuário chamado QSECOFR está fazendo a restauração.

Os programas Old Program Model (OPM) não podem ser usados para funções (UDFs) definidas empermissões ou máscaras. Isso ocorre porque o sistema não pode verificar o programa durante outrasoperações do banco de dados, como a restauração ou renomeação.

Ao criar um UDTF ou UDF, o padrão é FENCED, significando que UDTF ou UDF é executado em umencadeamento secundário. Certos registros especiais SQL como CURRENT USER não podem se

20 IBM i: Administração de Banco de Dados

|

|||

||

|

||

||||

|||||||

|

||

||

|

||

|||||

|

|

|

|||

||

comportar conforme o esperado quando referenciados em um UDF FENCED. Portanto, quando UDTFsou UDFs forem usados no texto do RCAC, use NOT FENCED.

ALWCPYDTA e Nível de Isolamento:

As expressões no RULETEXT da permissão ou máscara são executadas com o mesmo ALWCPYDTA eatributos de nível de isolamento ao abrir uma tabela base, índice ou visualização com uma permissão oumáscara ativa.

Para aberturas nativas o atributo ALWCPYDTA é *NO. Isso impede que as cópias temporárias dos dadossejam usadas para executar as expressões de permissão ou máscara. Se a permissão ou máscara requereruma cópia temporária dos dados, é recomendável que as expressões correspondentes sejam movidas paraum UDF seguro que é executado com um atributo ALWCPYDTA de *YES ou *OPTIMIZE. O RULETEXTda permissão ou máscara poderia ser alterado para referenciar o UDF em vez da expressão que precisavade uma cópia temporária dos dados.

Restaurando Objetos:

Restaurar uma versão diferente de um objeto dependente da tabela base pode impactar as permissões emáscaras existentes.

O processo de verificar os objetos dependentes para permissões e máscaras é feito pela primeira vez quea tabela base é aberta e não durante o processo de restauração.

Portanto, após restaurar os objetos dependentes para as permissões ou máscaras,o administrador dosistema deve incluir no processo uma operação aberta simples da tabela base. Isso permite que averificação seja concluída e evita a verificação no tempo de execução do aplicativo.

É importante se assegurar de que os objetos dependentes adequados das permissões e máscaras sãorestaurados ao restaurar as tabelas base com as permissões e máscaras.

Operações AdicionaisUm número de considerações deve ser revisto criando permissões ou máscaras para uma tabela.

Incluindo o Perfil do Aplicativo em Permissões e Máscaras:

Alguns aplicativos existentes podem precisar incluir o perfil da tarefa que executa o aplicativo naspermissões e máscaras da tabela base.

Alguns exemplos desses aplicativos seriam Data Propagator, software High Availability (HA) e aplicativossemelhantes. Se o perfil do aplicativo não for incluído nas permissões e máscaras, as permissões emáscaras serão reforçadas e o aplicativo poderá usar linhas parciais e dados mascarados.

Recuperar o Armazenamento:

Após concluir um Reclaim Storage (RCLSTG), quaisquer espaços de dados que sejam órfãos e localizadospela operação de recuperação de armazenamento serão incluídos na biblioteca QRCL como uma tabela.

Como esses espaços para dados poderiam ser o resultado de uma tabela base que tinha o RCAC, osespaços para dados que agora são tabelas no QRCL não têm nenhum RCAC. Após o RCLSTG serconcluído, o administrador do sistema precisará consultar as tabelas em QRCL e manipular (copiar osdados e excluir a tabela) as tabelas que precisam ser protegidas com o RCAC.

Administração 21

||

|

|||

||||||

|

||

||

|||

||

||

|

||

|||

|

||

||||

Relatórios de Consulta:

Esta recomendação se aplica a funções de relator de consulta, como Query for i ou DB2 for i QueryManager.

Ao usar uma função de relator de consulta da web, é recomendado, para resultados consistentes, queuma classificação também seja aplicada a qualquer coluna usada para processamento de quebra derelatório. Com o aplicativo de máscaras de coluna, a classificação é feita em uma coluna antes de asmáscaras serem aplicadas, mas o processamento da quebra que é feito pela função de relator pode serfeito usando valores mascarados. Como resultado, os agrupamentos de quebra inconsistente e valores deresumo diferentes podem ser vistos ao executar um relatório de consulta após as máscaras seremdefinidas na tabela baseada.

MQTs:

Ao preencher ou atualizar um MQT, ele não considera predicados ou expressões de máscaras oupermissões em tabelas dependentes.

Quando o MQT é usado para otimização em uma consulta, as permissões de linha subjacentes e máscarasde coluna são construídas na consulta que usa o MQT. Para que o MQT seja usado para otimização, oMQT deve projetar quaisquer colunas que sejam usadas pelas máscaras ou permissões.

No exemplo a seguir, o MQT TOTALSALES não pode ser usado por nenhuma consulta que projeteCreditCardNum, porque CustID é usado pela máscara para CreditCardNum, mas não está na lista deseleção do MQT.

CREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.SALES(CustID INT,

CreditCardNum VARCHAR(12),Amount DEC(6,2))

CREATE MASK MY_LIB.CCN_MASK ON SALES FOR COLUMN CreditCardNumRETURNCASE

WHEN (CustID < 10) THEN CreditCardNumELSE 'b*******' || SUBSTR(CreditCardNum, 9, 4)

ENDENABLE;

CREATE TABLE MY_LIB.TOTALSALESAS (SELECT CreditCardNum AS SCCN, SUM(Amount) AS SSUMFROM SALESGROUP BY CreditCardNum)DATA INITIALLY DEFERREDREFRESH DEFERREDMAINTAINED BY USER

SELECT CreditCardNum, Sum(Amount)FROM MY_LIB.SALESGROUP BY CreditCardNum

Perfis de Grupo e QIBM_DB_SECADM:

IDs de autorização que estão autorizados à função QIBM_DB_SECADM não devem ser incluídos em umperfil do grupo.

Esse ID de autorização pode transferir a propriedade ou conceder privilégios para um objeto a qualquerID de autorização que não ele mesmo. Entretanto, o ID autorizado ainda pode transferir ou conceder aogrupo do qual o ID autorizado é um membro.

22 IBM i: Administração de Banco de Dados

|

||

|||||||

|

||

|||

|||

||||||||||||||||||||||||

|

||

|||

Os usuários que têm autoridades necessárias para excluir, mover, copiar, renomear ou substituir osobjetos *PGM/*SRVPGM não podem fazer essas operações quando o objeto *PGM/*SRVPGMcorresponde a um SECURE FUNCTION e o usuário está autorizado à função QIBM_DB_SECADM. Umusuário que tem permissão de usar a função QIBM_DB_SECADM pode usar os comandos Create SQLILE CL (CRTSQLCBLI, CRTSQLCI, CRTSQLCCPPI ou CRTSQLRPGI) ou qualquer um dos comandosCreate Bound Program CL (CRTBNDC, CRTBNDCBL, CRTBNDCL, CRTBNDCPP, CRTBNDRPG) parasubstituir um *PGM/*SRVPGM associado à SECURE FUNCTION.

Após o objeto ser criado, ele pode ser copiado para a biblioteca QRPLOBJ. A cópia QRPLOBJ da SECUREFUNCTION pode ser copiada ou movida para outra biblioteca, mas não terá permissão de ser usadacomo uma SECURE FUNCTION a menos que o programa seja renomeado, movido, copiado ousalvo/restaurado depois por um usuário com a autoridade QIBM_DB_SECADM. Lembre-se, um usuáriosem a autoridade QIBM_DB_SECADM tem permissão de excluir, mover ou copiar o objeto em QRPLOBJ,mas não tem permissão de excluí-lo da biblioteca à qual foi movida ou copiada.

Parâmetros Copy File (CPYF):

O comando Copy File (CPYF) pode comparar valores retornados dos parâmetros FROMFILE TOKEY,INCCHAR e INCREL.

Se uma máscara for definida para a coluna que é usada por qualquer um desses parâmetros, o valor damáscara será retornado de FROMFILE e usado pelo parâmetro que pode resultar em resultadosinesperados.

OmniFind Text Search Server for DB2 for i:

O OmniFind Text Search Server for DB2 for i (5733-OMF) versão 1.3 ou superior permite que os clientescriem um índice de procura de texto por meio de uma coluna de uma tabela que está protegida peloRCAC.

Após um índice de procura de texto ser criado, as funções SQL integradas CONTAINS e SCORE podemser usadas para executar procuras de texto completo por meio da coluna indexada. Os clientes devemestar cientes das considerações a seguir ao criar um índice de procura de texto por meio de uma colunaque está protegida por um RCAC.v Um servidor de procura de texto executa a tarefa de indexação e procura de documentos; os dados

indexados são armazenados fora do DB2 como arquivos de fluxos no sistema de arquivo integrado.Como os dados indexados são armazenados fora do DB2, os usuários que têm acesso ao servidor deprocura de texto poderia possivelmente reconstruir documentos confidenciais a partir do índice.

v Os dados são trocados com o servidor de procura de texto usando protocolos de rede que não sãocriptografados, os certificados digitais não serão verificados.

v Um índice de procura de texto requer que a tabela base contenha uma ou mais colunas de identificaçãoque são uma chave primária, índice exclusivo ou ROWID. A coluna de identificação é usada paraidentificar uma linha específica ao interagir com o servidor de procura de texto ou um administrador;os valores serão armazenados na tabela de migração de dados e poderão ser retornados dosprocedimentos administrativos. Quando um índice de procura de texto for criado por meio de umatabela que é protegida por RCAC, a coluna de identificação deve conter um valor gerado, como umROWID ou uma coluna de identidade. Isso permite que linhas individuais sejam identificadas usandoinformações não confidenciais. Para obter mais informações, consulte o OmniFind Text Search Serverfor DB2 for i .

Usando o RCAC em Arquivos Lógicos MultiformatadosUm arquivo lógico de multiformato contém mais um formato de registro ou mais de um arquivoespecificado na palavra-chave PFILE (DDS) de um arquivo lógico.

Administração 23

|||||||

||||||

|

||

|||

|

|||

||||

||||

||

|||||||||

|||

Para abrir um arquivo lógico que tem mais de um arquivo especificado na palavra-chave PFILE, oscritérios a seguir devem ser atendidos:1. Cada permissão ou máscara no mesmo arquivo físico baseado deve ter um nome de correlação

exclusivo.2. Como os nomes de permissões e máscaras na mesma biblioteca devem ser exclusivos e não podem

usar o nome da máscara ou permissão para determinar uma correspondência entre duas tabelas. Emvez disso, a correspondência está usando o nome de correlação. O nome de correlação que é usadopara a "mesma" permissão ou máscara que é aplicado a diversos arquivos físicos baseados deve ser omesmo para cada arquivo.

3. O RULETEXT para uma permissão ou máscara correspondente deve ser o mesmo. Em casos em quenenhum nome de correlação está especificado na permissão ou máscara, o RULETEXT é normalizadopara usar o nome da tabela como o nome de correlação. Portanto, a única forma de forçar RULETEXTa ser o mesmo entre duas permissões e máscaras é usar o mesmo nome de correlação explícito.

4. Cada máscara ou permissão correspondente entre as tabelas deve ser definida com as mesmas opçõesde analisador:v Formato de data/hora e separadorv SRTSEQ e LANGIDv DECFLTRNDv Ponto decimal e DECRESULTv CCSID de RULETEXT

5. O RCAC para cada arquivo físico baseado deve estar no mesmo estado ativo ou inativo.6. Cada máscara ou permissão deve estar no mesmo estado ENABLED/DISABLED como sua

correspondência nos outros arquivos físicos baseados.

Neste exemplo, LF1 está baseado em PF1, PF2 e PF3 e cada definição usa o nome de correlação PERM1para que o código de verificação SQL possa identificá-los como sendo equivalente.

CREATE SCHEMA MY_LIBSET SCHEMA MY_LIBCREATE TABLE MY_LIB.PF1 (COLUMN1 INT)CREATE TABLE MY_LIB.PF2 (COLUMN1 INT)CREATE TABLE MY_LIB.PF3 (COLUMN1 INT)

DDS for LF1FMT LF .....A..........T.Name++++++.Len++TDp......Functions++++++++++++++

R RECORD1 PFILE(PF1 PF2 PF3)COLUMN1

K COLUMN1

ADDLIBLE MY_LIBCRTLF FILE(MY_LIB/LF1) SRCFILE(MY_LIB/QDDSSRC)

CREATE PERMISSION PF1_P1 ON MY_LIB.PF1 AS PERM1 FOR ROWS WHERECURRENT_USER = ’USER3’ ENFORCED FOR ALL ACCESS

CREATE PERMISSION PF2_P2 ON MY_LIB.PF2 AS PERM1 FOR ROWS WHERECURRENT_USER = ’USER3’ ENFORCED FOR ALL ACCESS

CREATE PERMISSION PF3_P3 ON MY_LIB.PF3 AS PERM1 FOR ROWS WHERECURRENT_USER = ’USER3’ ENFORCED FOR ALL ACCESS

CREATE MASK PF1_M1 ON MY_LIB.PF1 AS MASK1FOR COLUMN COLUMN1 RETURNCASE WHEN COLUMN1 > 55000 THEN 0 END

CREATE MASK PF2_M2 ON MY_LIB.PF2 AS MASK1FOR COLUMN COLUMN1 RETURNCASE WHEN COLUMN1 > 55000 THEN 0 END

24 IBM i: Administração de Banco de Dados

||

||

|||||

||||

||

|

|

|

|

|

|

||

||

||||||||||||||||||||||||||||||||

CREATE MASK PF3_M3 ON MY_LIB.PF3 AS MASK1FOR COLUMN COLUMN1 RETURNCASE WHEN COLUMN1 > 55000 THEN 0 END

ALTER TABLE PF1 ACTIVATE ROW ACCESS CONTROLALTER TABLE PF2 ACTIVATE ROW ACCESS CONTROLALTER TABLE PF3 ACTIVATE ROW ACCESS CONTROL

ALTER TABLE PF1 ACTIVATE COLUMN ACCESS CONTROLALTER TABLE PF2 ACTIVATE COLUMN ACCESS CONTROLALTER TABLE PF3 ACTIVATE COLUMN ACCESS CONTROL

Propagação de Dados MascaradosExecutar uma operação de inserção ou atualização em uma tabela base com o controle de acesso decoluna ativo, a operação pode falhar, porque os dados são os dados mascarados.

Isso pode acontecer quando os dados a serem inseridos ou atualizados contêm o valor mascarado e osdados mascarados foram selecionados em uma tabela com o controle de acesso da coluna ativa e aseleção foi feita na mesma instrução SQL. Como um exemplo, presuma que TABLE1 e TABLE2 tenham ocontrole de acesso da coluna ativa e para a inserção, selecionar na TABLE2 retornaria os dadosmascarados. A instrução a seguir retornaria um erro:INSERT INTO TABLE1 SELECT * FROM TABLE2

A instrução falharia com SQ20478 – O controle de acesso de linha ou coluna não é válido.

Entretanto, suponha que para este exemplo, TABLE1 e TABLE2 contenham duas colunas, NAME e SSN.Para o usuário que está fazendo o INSERT, a máscara é definida para retornar a sequência‘XXX-XX-nnnn’ ao consultar TABLE2.SELECT NAME, SSN INTO :name, :ssn FROM TABLE2;INSERT INTO TABLE1 VALUES(:name, :ssn);

Este mesmo tipo de problema também pode ocorrer se o usuário estiver executando um aplicativo debanco de dados nativo. Um READ da TABLE2 seguido de um WRITE na TABLE1 poderia resultar nosdados mascarados gravados no arquivo. Ou no caso de uma atualização, mesmo se a coluna SSN não sedestinar a alterar na UPDATE, o registro que está sendo atualizado contém o valor mascarado para acoluna SSN e ela é alterada.

Duas soluções para evitar que os dados mascarados sejam fornecidos:1. Acionador BEFORE.2. Restrição CHECK.

Solução de Acionador Before

A solução do acionador verifica os novos dados gravados em uma coluna e configura condicionalmente acoluna para o valor atual ou o configura como DEFAULT.

Este é um exemplo de um acionador before de inserção/atualização para evitar dados mascarados:CREATE SCHEMA MY_LIBCREATE TABLE MY_LIB.EMP_INFO

(COL1_name CHAR(10) WITH DEFAULT ’DEFAULT’,COL2_ssn CHAR(11) WITH DEFAULT ’DEFAULT’)

/********************************************************************//* Crie uma máscara para dar COL2_ssn para DBMGR, mas para qualquer outro usuário *//* mascare a coluna. Esta tabela conterá um acionador para assegurar que *//* a coluna possa nunca conter um valor mascarado. *//********************************************************************/

Administração 25

|||||||||||

|||

|||||

|

|

|||

||

|||||

|

|

|

|

||

|

||||||||||||

CREATE MASK MASK_SSN ON MY_LIB.EMP_INFOFOR COLUMN COL2_ssnRETURNCASE

WHEN VERIFY_GROUP_FOR_USER(SESSION_USER, ’DBMGR’) = 1THEN COL2_ssnELSE ’XXX-XX-’||SUBSTR(COL2_ssn,8,4)

ENDENABLE

ALTER TABLE MY_LIB.EMP_INFO ACTIVATE COLUMN ACCESS CONTROL

CREATE TRIGGER PREVENT_MASK_SSN BEFORE INSERT OR UPDATE ON MY_LIB.EMP_INFOREFERENCING NEW ROW AS N OLD ROW AS OFOR EACH ROW MODE DB2ROWSECUREDWHEN(SUBSTR(N.COL2_ssn,1,7) = ’XXX-XX-’)BEGIN

IF INSERTING THEN SET N.COL2_ssn = DEFAULT;ELSEIF UPDATING THEN SET N.COL2_ssn = O.COL2_ssn;END IF;

END

Tentar uma operação de inserção ou atualização faz com que o acionador BEFORE seja executado eassegure-se dos dados corretos na coluna COL2_ssn.

Solução de Restrição de Verificação

A solução baseada na restrição de verificação fornece uma nova sintaxe SQL para permitir que aespecificação de uma ação seja executada quando uma violação da condição de verificação de restrição deverificação ocorrer em vez de retornar um erro irrecuperável. Entretanto, se a condição de verificaçãocontinuar falhando após a ação ser tomada, um erro irrecuperável será retornado e a instrução SQLfalhará com a falha de restrição existente, (SQLSTATE=23513, SQLCODE=-545).

Uma restrição de verificação com a cláusula sobre violação está permitida em ambas as instruçõesCREATE TABLE e ALTER TABLE.

No exemplo a seguir, a máscara está definida para retornar um valor de ‘XXX-XX-nnnn’ para qualquerconsulta que não seja feita por um perfil do usuário no grupo ‘DBMGR’. A restrição verifica que a colunaSSN não tem o valor mascarado.

CREATE SCHEMA MY_LIBSET SCHEMA MY_LIBCREATE TABLE MY_LIB.EMP_INFO

(COL1_name CHAR(10) WITH DEFAULT ’DEFAULT’,COL2_ssn CHAR(11) WITH DEFAULT ’DEFAULT’)

CREATE MASK MASK_ssn ON MY_LIB.EMP_INFOFOR COLUMN COL2_ssn RETURN

CASEWHEN VERIFY_GROUP_FOR_USER ( SESSION_USER , ’DBMGR’ ) = 1THEN COL2_ssnELSE ’XXX-XX-’||SUBSTR(COL2_ssn,8,4)

ENDENABLE

/* Restrição de verificação para a atualização e inserção.*/ALTER TABLE MY_LIB.EMP_INFO

ADD CONSTRAINT MASK_ssn_preserve

26 IBM i: Administração de Banco de Dados

|||||||||||||||||||||||

||

|

|||||

||

|||

|||||||||||||||||||

CHECK(SUBSTR(COL2_ssn,1,7)<>'XXX-XX-')ON UPDATE VIOLATION PRESERVE COL2_ssnON INSERT VIOLATION SET COL2_ssn = DEFAULT

Classic Query Engine (CQE) e SQL Query Engine (SQE)A seção explica as diferenças de processamento de consulta nativas e abertas entre CQE e SQE.

Diferenças de Consulta Nativa e AbertaAlguns arquivos com RCAC não têm permissão de serem acessados.

Uma tentativa de usar nativo para abrir um arquivo com o RCAC que envolve qualquer um dosseguintes não está permitida:v Um arquivo lógico com diversos formatos se a tentativa de abrir for para mais de um formato.v Um arquivo distribuído.v Um arquivo com acionadores de leitura.v Um arquivo descrito no programa.v Um arquivo ou consulta que especifica uma sequência de classificação ICU 2.6.1.v A API de Consulta (QQQQRY).

Uma tentativa de usar o SQL para consultar uma tabela com o RCAC ativo que envolve qualquer um dosseguintes não está permitida:v Um arquivo distribuído.v Um arquivo com acionadores de leitura.v Um arquivo ou consulta que especifica uma sequência de classificação ICU 2.6.1.

Ordenação de Conjunto de ResultadosA implementação de SQE pode resultar em uma ordenação do conjunto de resultados diferente paraWRKQRY, RUNQRY ou OPNQRYF.

Quando uma consulta é executada sem especificar explicitamente que os resultados sejam retornados emuma ordem específica, ambos os otimizadores SQE e CQE escolherão qualquer plano que melhor seexecutar. Isso significa que ambos SQE e CQE podem ou não retornar os resultados em uma ordem dearquivo-chave. Como o CQE tem muito menos recurso avançado que o SQE, é mais provável que retorneresultados em uma ordem em chave e que o SQE tem menos probabilidade de retornar os resultados emuma ordem em chave. Assim, se uma consulta for especificada com WRKQRY, RUNQRY ou OPNQRYF ea ordenação da linha for importante, especifique explicitamente o(s) campo(s) chave e a ordenação docampo de chave.

Administração 27

||||

||

|

|

|

||

|

|

|

|

|

|

||

|

|

|

|

||

||||||||

|

28 IBM i: Administração de Banco de Dados

Avisos

Estas informações foram desenvolvidas para produtos e serviços oferecidos nos Estados Unidos.

É possível que a IBM não ofereça os produtos, serviços ou recursos discutidos nesta publicação em outrospaíses. Consulte um representante IBM local para obter informações sobre produtos e serviços disponíveisatualmente em sua área. Qualquer referência a produtos, programas ou serviços IBM não significa queapenas produtos, programas ou serviços IBM possam ser utilizados. Qualquer produto, programa ouserviço funcionalmente equivalente, que não infrinja nenhum direito de propriedade intelectual da IBM(ou quaisquer outros direitos da IBM) poderá ser utilizado em substituição a este produto, programa ouserviço. Entretanto, a avaliação e verificação da operação de qualquer produto, programa ou serviço nãoIBM são de responsabilidade do Cliente.

A IBM pode ter patentes ou solicitações de patentes pendentes relativas a assuntos tratados nestapublicação. O fornecimento desta publicação não lhe garante direito algum sobre tais patentes. Pedidosde licença devem ser enviados, por escrito, para:

Gerência de Relações Comerciais e Industriais da IBM Brasil Av. Pasteur, 138-146BotafogoRio de Janeiro, RJCEP 22290-240

Para pedidos de licença relacionados a informações de DBCS (Conjunto de Caracteres de Byte Duplo),entre em contato com o Departamento de Propriedade Intelectual da IBM em seu país ou envie pedidosde licença, por escrito, para:

IBM World Trade Asia Corporation2-31 Roppongi 3-chome,Minato-kuTokyo 106,Japan

O parágrafo a seguir não se aplica a nenhum país em que tais disposições não estejam de acordo com alegislação local: A INTERNATIONAL BUSINESS MACHINES CORPORATION FORNECE ESTAPUBLICAÇÃO “NO ESTADO EM QUE SE ENCONTRA”, SEM GARANTIA DE NENHUM TIPO, SEJAEXPRESSA OU IMPLÍCITA, INCLUINDO, MAS A ELAS NÃO SE LIMITANDO, AS GARANTIASIMPLÍCITAS (OU CONDIÇÕES) DE NÃO INFRAÇÃO, COMERCIALIZAÇÃO OU ADEQUAÇÃO A UMDETERMINADO PROPÓSITO. Alguns países não permitem a exclusão de garantias expressas ouimplícitas em certas transações, portanto, esta disposição pode não se aplicar ao Cliente.

Estas informações podem incluir imprecisões técnicas ou erros tipográficos. Periodicamente, são feitasalterações nas informações aqui contidas; tais alterações serão incorporadas em futuras edições destapublicação. A IBMpode, a qualquer momento, aperfeiçoar e/ou alterar os produtos e/ou programasdescritos nesta publicação, sem aviso prévio.

Referências nestas informações a Web sites não IBM são fornecidas apenas por conveniência e nãorepresentam de forma alguma um endosso a esses Web sites. Os materiais contidos nesses Web sites nãofazem parte dos materiais desse produto IBM e a utilização desses Web sites é de inteira responsabilidadedo Cliente.

A IBM pode utilizar ou distribuir as informações fornecidas da forma que julgar apropriada sem incorrerem qualquer obrigação para com o Cliente.

© Copyright IBM Corp. 1998, 2013 29

Licenciados deste programa que desejam obter informações sobre este assunto com objetivo de permitir:(i) a troca de informações entre programas criados independentemente e outros programas (incluindoeste) e (ii) a utilização mútua das informações trocadas, devem entrar em contato com:

IBM CorporationAv. Pasteur, 138-146Botafogo,Rio de Janeiro, RJCEP 22290-240

Tais informações podem estar disponíveis, sujeitas a termos e condições apropriadas, incluindo em algunscasos o pagamento de uma taxa.

O programa licenciado descrito nesta publicação e todo o material licenciado disponível são fornecidospela IBM sob os termos do Contrato com o Cliente IBM, do Contrato Internacional de Licença doPrograma IBM ou de qualquer outro contrato equivalente.

Todos os dados de desempenho aqui contidos foram determinados em um ambiente controlado. Portanto,os resultados obtidos em outros ambientes operacionais poderão variar significativamente. Algumasmedidas podem ter sido tomadas em sistemas de nível de desenvolvimento e não há garantia de queestas medidas serão iguais em sistemas geralmente disponíveis. Além disso, algumas medidas podem tersido estimadas por extrapolação. Os resultados reais podem variar. Os usuários deste documento devemverificar os dados aplicáveis para o ambiente específico.

As informações relativas a produtos não IBM foram obtidas junto aos fornecedores dos respectivosprodutos, de seus anúncios publicados ou de outras fontes disponíveis publicamente. A IBM não testouestes produtos e não pode confirmar a precisão de seu desempenho, compatibilidade nem qualquer outrareivindicação relacionada a produtos não IBM. Dúvidas sobre os recursos de produtos não IBM devemser encaminhadas diretamente a seus fornecedores.

Todas as declarações relacionadas aos objetivos e intenções futuras da IBM estão sujeitas a alterações oucancelamento sem aviso prévio e representam apenas metas e objetivos.

Estas informações foram projetadas apenas com o propósito de planejamento. As informações aquicontidas estão sujeitas a alterações antes que os produtos descritos estejam disponíveis.

Estas informações contêm exemplos de dados e relatórios utilizados em operações comerciais diárias.Para ilustrá-los da forma mais completa possível, os exemplos incluem nomes de pessoas, empresas,marcas e produtos. Todos esses nomes são fictícios e qualquer semelhança com os nomes e endereçosutilizados por uma empresa real é mera coincidência.

LICENÇA DE COPYRIGHT:

Estas informações contêm programas de aplicativos de amostra na linguagem fonte, ilustrando as técnicasde programação em diversas plataformas operacionais. O Cliente pode copiar, modificar e distribuir estesprogramas de amostra sem a necessidade de pagar à IBM, com objetivos de desenvolvimento, utilização,marketing ou distribuição de programas aplicativos em conformidade com a interface de programação deaplicativo para a plataforma operacional para a qual os programas de amostra são criados. Essesexemplos não foram testados completamente em todas as condições. Portanto, a IBM, não pode garantirou implicar a confiabilidade, manutenção ou função destes programas. Os programas de amostra sãofornecidos "NO ESTADO EM QUE SE ENCONTRAM", sem garantia de nenhum tipo. A IBM não deveser responsabilizada por nenhum dano causado pelo uso dos programas de amostra.

Cada cópia ou parte destes programas de amostra ou qualquer trabalho derivado deve incluir um avisode copyright com os dizeres:

30 IBM i: Administração de Banco de Dados

© (nome da empresa) (ano). Partes deste código são derivadas dos IBM Corp. Sample Programs.

© Copyright IBM Corp. _insira o ano ou anos_.

Informações sobre a Interface de ProgramaçãoEsta publicação de Administração do banco de dados documenta Interfaces de Programação desejadasque permitem que o cliente grave programas para obter os serviços do IBM i.

Marcas RegistradasIBM, o logotipo IBM e ibm.com são marcas ou marcas registradas da International Business MachinesCorp., registradas em vários países no mundo todo. Outros nomes de produto e serviço podem sermarcas registradas da IBM ou de outras empresas. Uma lista atual de marcas registradas da IBM estádisponível na Web em “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml.

Adobe, o logotipo Adobe, PostScript e o logotipo PostScript são marcas ou marcas registradas da AdobeSystems Incorporated nos Estados Unidos e/ou outros países.

Linux é uma marca registrada da Linus Torvalds nos Estados Unidos e/ou em outros países.

Microsoft, Windows, Windows NT e o logotipo Windows são marcas registradas da MicrosoftCorporation nos Estados Unidos e/ou em outros países.

UNIX é uma marca registrada da The Open Group nos Estados Unidos e em outros países.

Java e todas as marcas registradas e logotipos baseados em Java são marcas registradas da Oracle, Inc.nos Estados Unidos e/ou em outros países.

Outros nomes de produtos e serviços podem ser marcas registradas da IBM ou de outras empresas.

Termos e CondiçõesAs permissões para o uso dessas publicações estão sujeitas aos seguintes termos e condições.

Uso Pessoal: essas publicações podem ser reproduzidas para uso pessoal, não comercial, desde que todosos avisos de propriedade sejam preservados. Não é possível distribuir, exibir ou fazer trabalhos derivadosdessas publicações ou de nenhuma parte desse documento, sem consentimento expresso da IBM.

Uso Comercial: é permitido reproduzir, distribuir e expor essas publicações exclusivamente dentro de suaempresa, desde que todos os avisos de propriedade sejam preservados. Não é possível fazer trabalhosderivados dessas publicações, ou reproduzir, distribuir ou exibir essas publicações ou qualquer partedeste documento fora da sua empresa, sem o consentimento expresso da IBM.

Exceto conforme concedido expressamente nessa permissão, nenhuma outra permissão, licença ou direitoé concedido, seja expressa ou implícita, às publicações ou a qualquer informação, dados, software ououtra propriedade intelectual contida neste documento.

A IBM reserva-se o direito de revogar as permissões aqui concedidas, sempre que, a seu critério, o usodas publicações prejudicar seus interesses ou, conforme determinação da IBM, as instruçõesanteriormente citadas não estiverem sendo seguidas da forma apropriada.

Não é permitido fazer download, exportar ou reexportar estas informações, exceto em total conformidadecom todas as leis e regulamentos aplicáveis, incluindo todas as leis e regulamentos de exportação dosEstados Unidos.

Avisos 31

A IBM NÃO FORNECE NENHUMA GARANTIA SOBRE O CONTEÚDO DESSAS PUBLICAÇÕES. ASPUBLICAÇÕES SÃO FORNECIDAS "NO ESTADO EM QUE SE ENCONTRAM" E SEM GARANTIA DENENHUM TIPO, SEJA EXPRESSA OU IMPLÍCITA, INCLUINDO MAS NÃO SE LIMITANDO ÀSGARANTIAS IMPLÍCITAS DE MERCADO, NÃO-INFRAÇÃO E DE ADEQUAÇÃO A UMDETERMINADO PROPÓSITO.

32 IBM i: Administração de Banco de Dados

����

Número do Programa: 5770-SS1

Impresso no Brasil