distribuir a aplicação
24/09/2004
0
Estou em fase final de desenvolvimento da minha primeira aplicação aqui na empresa. Uso Delphi7 e DBExpress+Firebird1.5. Tenho que distribuir a aplicação para 6 máquinas da minha rede. Percebi que além de instalar o Firebird Client, as dll´s dbexpint, midas, tenho que copiar para a pasta do aplicativo os arquivos dbxdrivers.ini e dbxconnections.ini, neste último tem um espelho da configuração de acesso ao BD, que é feito no componente de conexão SqlConnection, no qual entre outras informações, tem o usuário ´SYSDBA´, e a senha ´masterkey´. Então eu faço 2 perguntas:
1) É possível distribuir a aplicação nas maquinas clientes, sem o arquivo dbxconnections.ini?
2) Sendo SYSDBA/masterkey, usuários e senhas padrões do IB/FB, qualquer um com um pouco de conhecimento poderia ter acesso ao banco, (pois no arquivo dbxconnections.ini, tem o caminho do banco). Se eu criar um outro usuário e senha para o banco, ainda sim será possível acessar o banco usando o par SYSDBA/masterkey?
Talvez possam ser perguntas para respostas bem simples, mas eu realmente tenho estas dúvidas.
Abraço a todos.
Programalista
Posts
24/09/2004
Weber
24/09/2004
Weber
Explicando melhor:
A senha não é do banco de dados e sim do Interbase/Firebird
24/09/2004
Vinicius2k
Isto não é uma regra... e pra dizer a verdade eu acho ruim.
Só está sendo necessária esta distribuição pq vc está usando o que se chama de ´Conexão nomeada´, configurando a propriedade [b:92ce0f8033]ConnectionName[/b:92ce0f8033] da TSQLConnection com uma configuração salva no .ini
Sim. E, na minha opinião é a melhor forma.
1. Retire o valor da propriedade [b:92ce0f8033]ConnectionName[/b:92ce0f8033] da TSQLConnection.
2. Configure apenas : [b:92ce0f8033]DriverName[/b:92ce0f8033], [b:92ce0f8033]LibraryName[/b:92ce0f8033], [b:92ce0f8033]VendorLib[/b:92ce0f8033] e [b:92ce0f8033]Params[/b:92ce0f8033] (nesta, basicamente, só é necessário configurar : Database, User_Name, Password, ServerCharSet e SQLDialect)
3. Crie seu próprio .ini, parecido com este :
[banco] Caminho=localhost:C:\Sistema\dados\BANCO.FDB
E no evento [b:92ce0f8033]BeforeConnect[/b:92ce0f8033] da SQLConnection leia o arquivo .ini atribuindo o valor presente na chave [b:92ce0f8033]Caminho[/b:92ce0f8033] para o parametro [b:92ce0f8033]Database[/b:92ce0f8033] da TSQLConnection :
SQLConnection1.Params.Values[´Database´]:= VALOR_VINDO_DO_INI
Assim vc distribui e configura este .ini nas estações, sem maiores dificuldades...
1. Ao instalar o IB/FB sempre altere a senha do SYSDBA e a informe, de preferencia por escrito, ao seu cliente. O SYSDBA sempre terá acesso a tudo, por isso sua senha deve ser alterada.
2. Nunca use o SYSDBA como um usuário da aplicação. O mínimo de segurança q vc pode implementar é criar seu próprio usuário no servidor, com o nome da aplicação, por exemplo, e dar-lhe direitos sobre os objetos
grant all on TABELA to USUARIO
A melhor forma de não precisar ficar dando direitos, é criar o usuário no servidor e criar o banco logado com este usuário, assim ele vai ser o owner (dono) do banco, não sendo necessário dar-lhe direitos.
Espero ter ajudado...
T+
24/09/2004
Programalista
meu arquivo .ini:
[color=green:81b92bcdea][SERVIDOR]
CAMINHO=SERVIDOR:C:\SISTEMAS\SINGER\BDGERAL.FDB[/color:81b92bcdea]
Propriedade params do Sqlconnection:
[color=green:81b92bcdea]Database = BDGERAL
Username = SYSDBA
Password = masterkey
ServerCharset = win1252
SqlDialect = 3[/color:81b92bcdea]
Evento BeforeConect do Sqlconnection:
[color=green:81b92bcdea]SQLConnect.Params.Values[´DATABASE´]:=´SERVIDOR:C:\SISTEMAS\SINGER\BDGERAL.FDB´;[/color:81b92bcdea]
24/09/2004
Vinicius2k
Esqueci de mencionar:
Propriedade [b:c4b240616b]LoadParamsOnConnect[/b:c4b240616b] da TSQLConnection setata para [b:c4b240616b]False[/b:c4b240616b]...
É isso?
T+
24/09/2004
Programalista
[b:bf1d4425fa]´Your name and password are not defined. Ask your database administrator to set up a Firebird login.´[/b:bf1d4425fa]
24/09/2004
Vinicius2k
Vc alterou a senha do SYSDBA ? Se sim altere também na conexão... ou vc criou um novo usuário ? se configure a conexão com este novo usuário...
Verifique os parametros da conexão, quando vc retira o ConnectionName, todos os parametos são limpos, então vc deve escolher o driver Interbase e os parametros básicos irão retornar...
Lembre-se ! Após a conexão com um novo usuário, é necessário que este usuário tenha direitos sobre o banco de dados para poder acessá-lo...
T+
Clique aqui para fazer login e interagir na Comunidade :)