Permissões do IBM System i nas visualizações do Banco de Dados


8

Temos um IBM System i executando o IBM i OS v6r1. Neste sistema, eu criei algumas visualizações de banco de dados. O que eu quero fazer é conceder a um grupo de usuários específico acesso APENAS a essas visualizações e nada mais na biblioteca em que as visualizações residem. Isso é possível? Eu tinha um grupo de usuários que tinha apenas permissões de leitura para todas as tabelas e exibições da biblioteca em que minhas exibições estão localizadas, e o acesso funciona quando o usuário está nesse grupo de usuários. Tentei copiar o grupo de usuários e atribuir permissões para incluir apenas as visualizações que criei, e o acesso foi negado. Um usuário ou grupo de usuários também precisa ter permissões na tabela da qual a exibição se origina para acessar a exibição?


Considere postar isso em dba.stackexchange.com
Página

@WarrenT acredite ou não, essa é realmente uma questão de administração do sistema, pois é uma questão de banco de dados para o iSeries / midrange - o banco de dados DB2 está totalmente integrado ao OS / 400 e, a partir da pergunta, parece que ele possui permissões do OS / 400 no biblioteca que está atrapalhando as coisas. (Infelizmente tem sido assim por muito tempo desde que eu tenha registrado em uma caixa de midrange eu não estou 100% de certeza de como resolver o problema!)
voretaq7

@ voretaq7 Sim. O banco de dados não é apenas tecido na essência do sistema operacional, ele é projetado na própria máquina (a interface da máquina, MI). Já faz mais de uma década que eu era QSECOFR, então eu teria que procurar a resposta. Mas como ninguém aqui respondeu ainda, e é um jogo justo para os dois sites, eu estava pensando que poderia haver alguém na dba que pudesse saber disso de cabeça para baixo.
warrent

Respostas:


4

Sim. Não é suficiente conceder autoridade para usar uma exibição. O usuário também deve ter autoridade para a tabela subjacente também.

Uma maneira de permitir o acesso a um usuário restrito é a autoridade adotada. Por uma questão de exemplo, vamos assumir o seguinte:

O usuário RESTRICTED não tem acesso a nenhuma tabela. Todas as bibliotecas são AUT (* EXCLUDE) - ou - o usuário RESTRICTED possui * EXCLUDE autoridade para todas as bibliotecas. O USUÁRIO PERMITIDO pode acessar (ou possuir) as tabelas e bibliotecas. A biblioteca DATA possui as tabelas. A biblioteca PROGRAMS possui os programas e procedimentos armazenados.

PERMITIDO criar um procedimento armazenado RPG na biblioteca PROGRAMAS. Verifique se o programa possui USRPRF (* OWNER) especificado. Isso significa que, quando o programa for executado, ele usará a autoridade do proprietário (PERMITTED) em vez da autoridade do perfil que o executa (RESTRICTED).

Conceda ao usuário a autoridade PERMITTED * USE para o objeto do programa RPG - ou - GRANT via SQL. Além disso, conceda ao usuário RESTRICTED * USE o acesso à biblioteca PROGRAMS. Isso permitirá que a RESTRICTED execute o procedimento / programa armazenado.

Observe que o usuário RESTRICTED não tem direitos para acessar as tabelas em DATA e você deseja deixá-lo dessa maneira.

Agora faça com que o usuário RESTRICTED use SQL para CHAMAR o procedimento armazenado. Ela tem autoridade para executar o programa porque possui direitos * USE na biblioteca PROGRAMS, bem como no objeto de programa compilado. O procedimento armazenado é executado sob a autoridade do proprietário, PERMITTED e, como PERMITTED tem acesso total à biblioteca DATA e às tabelas, o procedimento armazenado pode acessar / atualizar essas tabelas. Qualquer SQL bruto que o RESTRICTED tente usar falhará devido à autoridade insuficiente - a única coisa que ela pode fazer é chamar os procedimentos armazenados criados para ela.

Se seus programas estiverem armazenados na mesma biblioteca que seus dados, será necessário conceder autoridade RESTRICTED * USE à biblioteca e restringi-la especificamente (via * EXCLUDE) sobre todas as tabelas nessa biblioteca. Pode ser mais fácil criar uma biblioteca RESTRITA que retém apenas os procedimentos armazenados e autorizá-la a essa biblioteca. Isso facilita a manutenção contínua, porque você não precisará se lembrar de continuar restringindo-a das tabelas recém-criadas no DATA.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.