segunda-feira, 16 de novembro de 2020

Níveis de Privilégios de banco de dados

Há três camadas concêntricas de privilégios do nível do Banco de Dados, Connect, Resource e DBA, que autoriza o aumento do poder sobre o acesso e controle do Banco de Dados. Apenas um usuário com o privilégio de DBA pode conceder ou revogar privilégios no nível do banco de dados. 

 
 
 
 
 
 
 
 
 
 
 
 
Por causa da organização hierárquica dos privilégios, se você revogar o privilégio RESOURCE ou CONNECT de um usuário com privilégio DBA, a declaração não terá efeito. Se você revogar o privilégio de DBA de um usuário, o usuário retém o privilégio CONNECT no Banco de Dados. Para negar o acesso ao Banco de Dados a um usuário com privilégio de DBA ou RESOURCE, você deve primeiro revogar o privilégio DBA ou RESOURCE e, em seguida, revogar o privilégio CONNECT em uma instrução REVOKE separada.
 
Da mesma forma, se você revogar o privilégio CONNECT de um usuário que possui o privilégio RESOURCE, a declaração não terá efeito. Se você revogar o privilégio de RESOURCE de um usuário, o usuário retém o privilégio CONNECT no Banco de Dados.
 
Somente usuários ou PUBLIC podem ter privilégios de nível de Banco de Dados. Você não pode revogar esses privilégios de uma role, porque uma role não pode conter privilégios de nível de Banco de Dados.
 
A tabela a seguir lista a palavra-chave para cada privilégio no nível do Banco de Dados.
 
 
Privilégios Efeitos
DBA
Tem todos os recursos do privilégio RESOURCE e pode executar as seguintes operações adicionais:
  • Conceda qualquer privilégio de nível de banco de dados, incluindo o privilégio de DBA, a outro usuário.
  • Conceda qualquer privilégio de nível de tabela a outro usuário ou a uma role.
  • Conceda uma role a um usuário ou a outra role.
  • Revogar um privilégio cujo concedente você especifica como revogador na cláusula AS da instrução REVOKE.
  • Restrinja o privilégio de execução aos DBAs ao registrar um UDR.
  • Execute a instrução SET SESSION AUTHORIZATION.
  • Crie qualquer objeto de banco de dados.
  • Crie tabelas, views e índices, designando outro usuário como proprietário desses objetos.
  • Altere, elimine ou renomeie objetos de banco de dados, independentemente de quem os possui.
  • Execute a opção DROP DISTRIBUTIONS da instrução UPDATE STATISTICS.
  • Execute as instruções DROP DATABASE e RENAME DATABASE.
RESOURCE
Permite estender a estrutura do banco de dados. Além dos recursos do privilégio CONNECT, o detentor do privilégio de RESOURCE pode realizar as seguintes operações:
 
  • Criar novas tabelas.
  • Criar novos indices.
  • Criar novas UDR’s.
  • Criar novos tipos de dados.
CONNECT
Se você possui esse privilégio, você pode consultar e modificar dados, e modifique o esquema do banco de dados se você possuir o objeto de banco de dados que deseja modificar. Um usuário com o privilégio Connect pode realizar as seguintes operações:
 
  • Conecte-se ao banco de dados com a instrução CONNECT ou outra instrução de conexão.
  • Execute as instruções SELECT, INSERT, UPDATE e DELETE, desde que o usuário tenha os privilégios de nível de tabela necessários.
  • Criar Views, desde que o usuário tenha o privilégio SELECT nas tabelas subjacentes.
  • Criar synonyms.
  • Criar tabelas temporarias, e criação de indices nas tabelas temporárias.
  • Aterar ou eliminar uma tabela ou um índice, se o usuario for o proprietaria dessa tabela ou indice.
  • Conceder privilégio em uma tabela, se o usuário for proprietario da tabela (ou recebeu privilégio na tabela com a palavra-chave WITH GRANT OPTION).
 
 Dica: Para determinar quais usuários têm privilégios de DBA em um banco de dados, execute esta consulta no DB-Access ou em seu aplicativo:
 

SELECT username,usertype FROM sysusers; 

A saída mostra os nomes de usuário (por exemplo, público e informix) seguidos por um dos seguintes códigos:
  • D = Privilégio de DBA
  • C = Privilégio de CONNECT
  • R = Privilégio de RESOURCE
 

quinta-feira, 21 de novembro de 2019

O IBM® Informix Primary Storage Manager gerencia o armazenamento para operações de backup restauração do ON-Bar, incluindo backups paralelos, que usam dispositivos de arquivo (discos).

IBM Informix Primary Storage Manager

IBM Informix Primary Storage Manager é um aplicativo que gerencia dispositivos de armazenamento usados para solicitações de backup e restauração emitidas pelo ON-Bar. O PSM suporta o processamento serial e paralelo para solicitações de backup e restauração.

O PSM consiste nos seguintes componentes:

onpsm

Utilitário de linha de comando que você pode usar para executar as seguintes tarefas:
  • Criar, modificar e remover dispositivos de armazenamento;
  • Definir e modificar os tamanhos máximos para dispositivos;
  • Mover informações de backup de um dispositivo para outro em um pool de dispositivos;
  • Determinar se volumes, objetos de armazenamento e dispositivos estão bloqueados ou ocupados;
  • Liberar volumes bloqueados, objetos de armazenamentos e dispositivos;
  • Verificar nomes e rótulos de volumes;

Biblioteca compartilhada XBSA

Uma versão exclusiva da biblioteca compartilhada da API X/Open Backup Services (XBSA) que o ON-BAR e o Informix Primary Storage Manager usam para se comunicar. Quando o ON-Bar armazena ou recupera dados armazenados em dispositivos de armazenamento, o gerenciador de armazenamento coordena a solicitação por meio da interface XBSA no nível do dispositivo. Você especifica o local da biblioteca compartilhada XBSA com o parâmetro de configuração BAR_BSALIB_PATH.

Tabelas de catálogo de armazenamento

Um conjunto de arquivos simples que rastreiam informações sobre todos os objetos, dispositivos e conjuntos de dispositivos de armazenamento. Esses arquivos são necessários para restaurar objetos de backup criados pelo PSM. Por padrão, esses arquivos são armazenados no diretório $INFORMIXDIR/etc/psm. Você pode usar o parâmetro de configuração PSM_CATALOG_PATH para especificar outro local para as tabelas do catálogo de armazenamento.

Importante

  • Faça backup das tabelas do catálogo de armazenamento com as ferramentas do sistema operacional como parte de uma estratégia de recuperação de desastre. O backup das tabelas do catálogo de armazenamento não são feitas com a instancia do banco de dados e não estão associados as tabelas do catálogo do sistema.
  • Para impedir que as tabelas do catálogo de armazenamento fiquem muito grandes, exclua regularmente gerações antigas de backups. Utilize o comando onsmsync para gerenciar políticas de expiração.

Os parâmetros de configuração que você usa para configurar o Informix Primary Storage Manager estão no arquivo onconfig. Você define e mantém dispositivos de armazenamento com o utilitário de linha de comando onpsm. Você pode configurar um dispositivo por vez ou gerar um arquivo de configuração de dispositivo para configurar vários dispositivos. Durante os backups, o Informix Primary Storage Manager seleciona um dispositivo de um conjunto de dispositivos disponíveis. Se o dispositivo ficar cheio ou falhar, o gerenciador de armazenamento altera automaticamente para outro dispositivo no mesmo pool.

O Informix Primary Storage Manager grava informações, mensagens de aviso e erros no log de atividades do gerenciador de armazenamento.  Você pode usar o parâmetro de configuração PSM_ACT_LOG para especificar o local do log de atividades. Se o parâmetro de configuração PSM_ACT_LOG não contiver informações, o gerenciador de armazenamento colocará as informações de atividades no diretório especificado com o parâmetro de configuração BAR_ACT_LOG.





Recursos do Informix Primary Storage Manager

Dispositivos de armazenamento para usar com o gerenciador de armazenamento

  • Apenas dispositivos de arquivos;
  • O gerenciador de armazenamento cria automaticamente um dispositivo padrão quando um catálogo é criado. O Dispositivo padrão é $INFORMIXDIR/backups;
  • Você pode remover o dispositivo padrão;

Tamanho da transferencia do buffer

  • Ilimitado;

Criptografia e compactação

  • Utiliza-se com os parâmetros BACKUP_FILTER, RESTORE_FILTER, FILTERS no ON-Bar ( O gerenciador de armazenamento não fornece criptografia ou compactação.)

Políticas de expiração do gerenciador de armazenamento

  • Nenhuma política de expiração.  (Você expira manualmente os objetos de backup do gerenciador de armazenamento com o utilitário onsmsync. Os comandos de expiração do objeto onsmsync removem objetos do gerenciador de armazenamento.)

Você pode executar uma restauração importada com o ON-Bar e o IPSM. Em uma restauração importada, você faz backup da instancia do Informix em uma máquina e restaura a instancia em uma maquina diferente. Use as opções de exportação e importação do comando onsmsync para exportar os objetos de backup do gerenciador de armazenamento na maquina de backup e importe-os para o gerenciador de armazenamento na máquina de restauração.

Backups em dispositivos Cloud e STDIO

Usando dispositivos STDIO para backup e restauração:
  • O PSM gravará/lerá um fluxo de dados em um utilitário externo ( por exemplo, sftp ou curl );
  • Operador para fornecer parâmetros para chamar o utilitário para operações de leitura/gravação/remoção;
  • A transferencia de dados para o programa de terceiros ocorrerá usando o STDIO, o PSM gravará na entrada padrão do utilitário e lerá sua saída padrão;
  • O operador não tem acesso direto ao fluxo de dados;
  • Para usar esse recurso, o operador deve criar um dispositivo PSM do tipo "STDIO";
  • Um dispositivo do tipo STDIO exigirá que você forneça o caminho para o programa a ser executado como o nome do dispositivo ( exemplo, /usr/bin/curl );
  • Além disso, você deve fornecer os argumentos para chamar o programa durante o backup, restauração e remoção;
  • Opcionalmente, você pode fornecer o tamanho máximo de um arquivo; se o backup for maior que esse tamanho, ele será dividido em partes;
A nova linha de comando é:

onpsm -D -add /usr/bin/sftp.sh -t STDIO  --stdio_warg "BACKUP @object_name1@.@object_part@" --stdio_rarg "RESTORE  @object_name1@.@object_part@" --stdio_darg "DELETE  @object_name1@.@object_part@" --max_part_size 

quarta-feira, 19 de junho de 2019

exit(n)

NAME
exit - Finaliza a aplicação 
SINOPSE
exit ?returnCode?
DESCRIÇÃO
Encerra o processo, retornando returnCode para o sistema como o status de saída. Se returnCode não for especificado, o valor padrão será 0.
EXEMPLO
Como os códigos de saída diferentes de zero são interpretados como erros pelo processo de chamadas, o comando exit é uma parte importante da sinalização de que algo fatal deu errado. Esse fragmento de código é útil em scripts para atuar como uma interceptação geral de problemas:
proc main {} { 
# ... coloque o código real aqui ...
 if {[catch {main} msg options]} {
       puts stderr "unexpected script error: $msg"
       if {[info exists env(DEBUG)]} {
            puts stderr "---- BEGIN TRACE ----"
            puts stderr "[dict get $options -errorinfo]
                      puts stderr "---- END TRACE ---"
                  }
 
 
 



Esse fragmento de código é útil em scripts para atuar como uma interceptação geral de problemas:
 
 

quinta-feira, 13 de junho de 2019

Comandos uteis para kvm (virsh)

Conectar uma console serial virtual para um convidado

entrar na vm guest e habilitar uma porta serial

# systemctl enable serial-getty@ttyS0

iniciar a serial

# systemctl start serial-getty@ttyS0

listar as maquinas virtuais convidadas

# virsh list

acessar a console do convidado

# virsh console 1 
ou 
# virsh console logixtst

após acessar teclar enter para o acesso

para sair , digitar exit e após digitar ctrl+]

Minhas considerações sobre essa console.... na minha opinião não serve de nada, pois a console na verdade é somente uma emulação, ele ate tentar emular um VT110, porem no lado do GUEST ele depende de um serviço de serial habilitado, que no meu entender não server para nada, pois ao rebotar uma maquina ele não corre as informações na tela como uma console mesmo ou ao iniciar um servidor ele também não mostra as informações na  tela, resumindo se precisar interagir com o boot da maquina, não conseguiremos , teremos que ir la no HOST e chamar a console real para interagir.

ainda acho mais vantagem nesse caso utilizar o SSH.

Forçar o desligamento de uma VM

# virsh destroy logixtst

Prove informações básicas sobre uma VM

# virsh dominfo logixtst

Mostra o estado de uma VM

# virsh domstate logixtst

Listar as VMs

# virsh list {--inactive | --all}

Pausar uma VM

# virsh suspend logixtst

Retomar a VM

# virsh resume logixtst

Descobrir o caminho da imagem do disco da VM

# virsh dumpxml logixtst | grep "source dev"

Criar uma VM através do arquivo de xml

# virsh dumpxml LogixTeste >  /etc/libvirt/qemu/ajm.xml

Editar o arquivo /etc/libvirt/qemu/ajm.xml e alterar a tag para o novo novo
exemplo:

LogixTeste para ajm

em seguida alterar a tag deixando-a em branco como no exemplo abaixo:

b4732438-0255-4390-9523-dc39dfb8348e (antes)

(depois)

após alteração executar o comando abaixo para criar o novo UUID da VM:

# virsh define ajm.xml

e finalmente criar a nova VM com o comando abaixo:

# virsh create ajm.xml


Backup maquina virtual KVM (kvm guest)

Desligar a VM, se tiver rodando

# virsh list

zeus:/kvm/LS # virsh list 
 Id    Nome                           Estado
----------------------------------------------------
 1     totvsLS                        executando
 3     HDR                            executando
 7     openFire                       executando

# virsh shutdown openFire

Backup da imagem do disco ( default: /var/lib/libvirt/images )

# cp -p /kvm/openFire /caminho_destino

Backup dos arquivos de configurações

# cp -p /etc/libvirt/qemu/openfire.xml /caminho_destino

Volte a VM no ar

# virsh start openFire

sexta-feira, 15 de março de 2019

Como configurar o Postfix no SLES11, SLES12 para fazer relay em um dominio

Ambiente

SUSE Linux Enterprise Server 11 Service Pack 4 (SLES 11 SP4)
SUSE Linux Enterprise Server 12 Service Pack 3 (SLES 12 SP3)


Assume-se que você ja tem um ambiente valido, uma conta de e-mail e senha. Você não pode usar "Postfix masquerading".


  • No SLES11 ou SLES12 ja deve ter um postfix instalado e rodando, tire o serviço do ar com "rcpostfix stop" ou "systemctl stop postfix".

  • Edit o arquivo sasl_passwd que se encontra no /etc/postfix e adicione seu domínio, seu usuário e senha:
[smtp.seudominio.com.br]:587  :senha

OBS: deixa a ultima linha em branco

  • Salve o arquivo;

  • agora compile o arquivo /etc/postfix/sasl_passwd com o comando:
postmap hash:/etc/postfix/sasl_passwd

isso ira atualizar ou criar o arquivo /etc/postfix/sasl_passwd_db, que o Postfix ira ler para saber as credenciais.

  • em seu arquivo /etc/postfix/main.cf adicione ou altere as seguintes linhas: 


relayhost = [smtp.ajmsolutions.com.br]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_use_tls = yes

Salve o arquivo main.cf

inicialize o serviço e faça o teste.

quinta-feira, 14 de março de 2019

Exemplos do comando find

O comando abaixo tem o objetivo de encontrar uma string dentro de vários arquivos, muito útil quando se precisar encontrar uma arquivo com uma determinada string dentro dele. 

 find ./* -type f -exec grep -l "STRING" {} \;