O servidor SQL de 4D permite o acesso externo aos dados armazenados na base 4D. Para as aplicações de terceiras partes e as aplicações 4D, este acesso é realizado mediante um driver ODBC 4D. Também é possível realizar conexões diretas entre uma aplicação cliente 4D e 4D Server. Todas as conexões são feitas usando o protocolo TCP/IP.
O servidor SQL de uma aplicação 4D pode ser detida ou iniciada em qualquer momento. Além disso, por motivos de rendimento e segurança, pode especificar a porta TCP e o endereço IP de escuta e restringir as possibilidades de acesso ao banco de dados 4D.
O acesso externo ao servidor SQL de 4D pode ser realizado via ODBC (todas as configurações), ou diretamente (aplicação cliente 4D conectado a 4D Server). Isto se resume no seguinte diagrama:
Em azul: conexões via ODBC Em vermelho: conexões diretas
A nível de pesquisas, a abertura de uma conexão externa ou via ODBC é levada a cabo utilizando o comando SQL LOGIN. Para maior informação, consulte a descrição deste comando.
Conexões via ODBC: 4D oferece um driver ODBC que permite a toda aplicação de terceiros (folha de cálculo de tipo Excel®, outros DBMS, etc.) ou qualquer outra aplicação 4D se conecta ao servidor SQL de 4D. O driver ODBC 4D deve ser instalado na máquina da parte SQL cliente. A instalação e configuração do driver ODBC 4D é detalhada em outro manual.
Conexões diretas: só uma aplicação 4D Server pode responder as consultas SQL diretas precedentes de outras aplicações 4D. Da mesma forma, só as aplicações 4D de gama "Profissional" podem abrir uma conexão direta a outra aplicação 4D. Durante uma conexão direta, a troca de dados é realizada automaticamente em modo síncrono, que elimina as questões relacionadas com a sincronização e a integridade dos dados. Só uma conexão está autorizado por processo. Se deseja estabelecer várias conexões simultâneas, deve criar tantos processos como seja necessário. As conexões diretas, pode estar seguro selecionando a opção Ativar SSL no lado do objetivo da conexão (4D Server) na página "SQL" das Propriedades da base. As conexões diretas só estão autorizadas por 4D Server se o servidor SQL está ativo. A principal vantagem das conexões diretas é que se aceleram as trocas de dados.
O servidor SQL de 4D pode ser iniciado ou detido de três formas:
Manualmente, utilizando os comandos Arrancar o servidor SQL/Parar o servidor SQL no menu Executar da aplicação 4D:
Nota: Com 4D Server, pode acessar a este comando como botão na Página Servidor SQL. Quando é lançado o servidor, esta opção de menu muda a Parar o servidor SQL.
Automaticamente ao inicio da aplicação, via as Propriedades da base. Para fazer isso, mostre a página SQL e selecione a opção Lançar o servidor SQL ao início:
Por programação, usando os comandos START SQL SERVER e STOP SQL SERVER (tema “”). Quando o servidor SQL está parado (ou quando não foi iniciado), 4D não responderá a nenhuma consulta SQL externa. Nota: Parar o servidor SQL não afeta o funcionamento interno do motor SQL de 4D. O motor SQL sempre está disponível para as consultas internas.
É possível configurar os parâmetros de publicação do servidor SQL integrado de 4D. Estes parâmetros se encontram na página SQL das Propriedades do banco:
A opção Iniciar o servidor SQL ao iniciar permite iniciar o servidor SQL ao início da aplicação.
Porta TCP: como padrão, o servidor SQL de 4D responde às requisições na porta TCP 19812. Se esta porta já está sendo utilizada por outro serviço, ou se seus parâmetros de conexão requerem outra configuração, pode modificar a porta TCP utilizada pelo servidor SQL de 4D. Nota: se digitar 0, 4D utilizará o número de porta TCP como padrão, ou seja, 19812.
Endereço IP: permite definir o endereço IP da máquina na qual o servidor SQL deve processar as consultas SQL. Como padrão, o servidor responderá a todos os endereços IP (opção Todos). A lista pop-up "Endereço IP" contém automaticamente todos os endereços IP presentes na máquina. Quando é selecionada uma direção em particular, o servidor somente responderá às consultas enviadas a este endereço. Esta funcionalidade está dirigida às aplicações 4D hospedadas em máquinas com várias direções TCP/IP. Notas:
Do lado do cliente, a direção IP e a porta TCP do servidor SQL para que a aplicação se conecte devem estar corretamente configurados na definição da fonte de dados ODBC.
A partir de 4D v14, o servidor SQL suporta a notação de endereços IPv6. O servidor aceita indiferentemente as conexões IPv6 ou IPv4 quando a configuração "Endereço IP" de escuta do servidor é Todas. Para obter mais informação, consulte a seção Suporte de IPv6.
Ativar SSL: esta opção indica se o servidor SQL deve ativar o protocolo SSL para o processamento das conexões SQL. Note que quando esse protocolo está ativado, você deve adicionar a palavra chave ":ssl" ao final do endereço IP do servidor SQL quando você abre a conexão usando o comando SQL LOGIN. Por padrão, o servidor SQL usa arquivos internos para a chave SSL e certificado. Você pode, entretanto, usar elementos personalizados: para fazer isso, apenas copie seus arquivos key.pem e cert.pem de 4D na seguinte localização: MeuBanco/Preferencias/SQL (onde "MeuBanco" representa a pasta/pacote do banco).
Autorizar as requisições Flash Player: esta opção permite ativar o mecanismo de suporte às requisições Flash Player pelo servidor SQL de 4D. Este mecanismo é baseado na presença de um arquivo, chamado "socketpolicy.xml," na pasta preferências do banco (Preferencias/SQL/Flash/). Este arquivo é pedido pelo Flash Player para permitir conexões entre domínios ou conexões por aplicações sockets Flex (Web 2.0). Na versão anterior de 4D, este arquivo tinha que se agregar manualmente. A partir de agora, a ativação se realiza utilizando a opção Autorizar as requisições Flash Player: ao ativar esta opção, as requisições Flash Player são aceitas e um arquivo "socketpolicy.xml" genérico é criado para o banco se é necessário. Nota: é possível definir a codificação utilizada pelo servidor SQL para o processamento de requisições externas utilizando o comando 4D SQL SET OPTION.
Por razões de segurança, é possível controlar as ações que as consultas externas enviadas ao servidor SQL podem realizar no banco de dados 4D. Este controle se realiza em dois níveis:
Ao nível do tipo de ação autorizada;
Ao nível do usuário que faz a consulta. Estes ajustes podem ser feitos na página SQL das Propriedades do banco:
Os parâmetros definidos nesta caixa de diálogo são aplicados ao esquema (Schema) como padrão. O controle dos acessos externos ao banco se baseiam no conceito de esquemas SQL (ver a seção Princípios para Integração 4D e motor SQL de 4D). Se não criar esquemas personalizados, o esquema padrão inclui todas as tabelas do banco. Se criar outros esquemas com os direitos de acesso específicos e os associa com as tabelas, o esquema por padrão somente incluirá as tabelas que não estão incluídas nos esquemas personalizados.
Pode configurar três tipos distintos de acesso ao esquema por padrão através do servidor SQL:
"Somente leitura (dados)": acesso ilimitado na leitura a todos os dados das tabelas do banco mas não está permitido adicionar, modificar ou eliminar registros, nem modificar a estrutura do banco.
“Leitura/escrita (dados)": acesso em leitura e escrita (adicionar, modificar e apagar) a todos os dados das tabelas de banco, mas não é possível modificar a estrutura do banco.
"Completo (dados e estrutura)": acesso em leitura e escrita (adicionar, modificar e apagar) a todos os dados das tabelas do banco, assim como à modificação da estrutura do banco (tabelas, campos, relações, etc.).
Pode designar um conjunto de usuários para cada tipo de acesso. Há três opções disponíveis para este propósito:
<Ninguém>: se selecionar esta opção, o tipo de acesso será negado para todas as consultas, independentemente de sua origem. Este parâmetro pode ser utilizado mesmo quando o sistema de gestão de acesso por senhas de 4D não estiver ativo.
<Todos>: se selecionar esta opção, o tipo de acesso se aceitará para todas as consultas (sem limites).
Grupo de usuários: esta opção permite criar um grupo de usuários autorizados a realizar o tipo de acesso atribuído. Esta opção requer que a gestão de senhas de 4D esteja ativada. O usuário que realiza as consultas dá seu nome e senha durante a conexão ao servidor SQL.
ADVERTÊNCIA: cada tipo deacesso está definido de forma independentedos outros.Mais especificamente, se sóatribui o tipo de acesso Só leituraaum grupoeste nãoterá nenhum efeitojá que este grupo, assim comotambém todos os outrosvão continuarse beneficiando doacesso Leitura/escritura(atribuído a<Todo o mundo>de forma pré determinada).Com o propósito dedefinir um acessoSó leitura, também é necessáriooacesso Leitura/escritura.
ADVERTÊNCIA: este mecanismo se baseia nas senhas de 4D. Para que o controle de acesso ao servidor SQL tenha efeito, o sistema de senhas de 4D deve estar ativo (uma senha deve ser atribuída ao Designer).
Nota: uma opção de segurança adicional pode ser estabelecida ao nível de cada método de projeto 4D. Para obter mais informação, consulte o parágrafo "Opção Disponível através SQL" da seção .