4D v16.3

Método de base On SQL Authentication

Página Inicial

 
4D v16.3
SQL
Método de base On SQL Authentication

Método de base On SQL Authentication  


 

 

O Método de base On SQL Authentication pode ser utilizado para filtrar os pedidos enviados ao servidor SQL integrado de 4D. Este filtro pode estar baseado no nome e senha, assim como 7(opcional) no endereço IP do usuário. O desenvolvedor pode utilizar sua própria tabela de usuários ou a dos usuários 4D para avaliar os identificadores de conexão. Quando tiver validada a conexão, o comando CHANGE CURRENT USER pode ser utilizado para controlar o acesso das pedidos dentro do banco 4D.

Quando existir, o Método de base On SQL Authentication é chamado automaticamente por 4D ou 4D Server em cada conexão externa ao servidor SQL. Portanto o Sistema interno de gestão dos usuários de 4D não está ativado. A conexão é aceita apenas se o método de banco retorna True em $0 e se o comando CHANGE CURRENT USER for executado com êxito. Se uma destas condições não for cumprida, o pedido é recusado.

Nota: A instrução SQL LOGIN(SQL_INTERNAL;$usuário;$senha) não chama ao Método de base On SQL Authentication já que é uma conexão interna neste caso.

O método de banco de dados recebe até três parâmetros de tipo Texto, passados por 4D ($1, $2 e $3) e retorna um booleano, $0. Esta é a descrição desses parâmetros:

ParâmetrosTipoDescrição
$1TextoNome de usuário
$2TextoSenha
$3Texto(opcional) Endereço IP do cliente na origem do pedido (*)
$0BooleanoTrue = pedido aceito, False = pedido recusado

(*) 4D devolve os endereços IPv4 em um formato híbrido IPv6/IPv4 escrito com um prefixo de 96 bits, por exemplo ::ffff:192.168.2.34 para o endereço IPv4 192.168.2.34. Para maior informação, consulte  Suporte de IP v6.

Deve declarar estes parâmetros desta forma:

  ` Método de base On Web Authentication
 
 C_TEXT($1;$2;$3;$4)
 C_BOOLEAN($0)
  ` Código para o método

A senha ($2) se recebe como texto estandarte.

Deve controlar os identificadores da conexão SQL no Método de base On SQL Authentication.  Por exemplo, pode verificar o nome e a senha utilizando uma tabela de usuários personalizada. Se os identificadores forem válidos, passe True em $0 para aceitar a conexão e a petição. 4D abre uma sessão SQL para o usuário. Caso contrário, passe False em $0; neste caso, a conexão é recusada.

Nota: Se Método de base On SQL Authentication não existir, a conexão é avaliada utilizando o Sistema integrado de gestão de usuários de 4D (Se estiver ativado, em outras palavras, se uma senha tiver sido  atribuída ao Desenhista). Se este Sistema não estiver ativado, os usuários estão conectados com os direitos de acesso do Desenhista (acesso livre).

Se passa True em $0, deve chamar com sucesso ao comando CHANGE CURRENT USER no Método de base On SQL Authentication para que a pedido seja aceito e para que 4D abra uma sessão SQL para o usuário.

O uso do comando CHANGE CURRENT USER pode ser usada para implementar um sistema de autenticação virtual que tem a dupla vantagem de permitir o controle das ações de conexão e de esconder os identificadores da conexão na sessão SQL 4D.

Quando o sistema de senhas integrado de 4D não está ativo, a execução do comando CHANGE CURRENT USER não tem efeito; os usuários se conectam com os direitos de acesso do Desenhador.

Este exemplo do Método de base On SQL Authentication verifica que o pedido de conexão provenha da rede interna, confirma os identificadores e depois atribui os direitos de acessos "sql_user" para a sessão SQL.

 C_TEXT($1;$2;$3;$4)
 C_BOOLEAN($0)
  `$1: usuário
  `$2: senha
  `{$3: endereço IP do cliente}
 ON ERR CALL("SQL_error")
 If(DirIPInterna($3))
  `O método DirIPInterna verifica se o endereço IP é interna
    If($1="victor") & ($2="hugo")
       CHANGE CURRENT USER("sql_user";"")
       If(OK=1)
          $0:=True
       Else
          $0:=False
       End if
    Else
       $0:=False
    End if
 Else
    $0:=False
 End if



Ver também 

CHANGE CURRENT USER

 
PROPRIEDADES 

Produto: 4D
Tema: SQL

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)