Introdução
Tabelas
Relacionamentos
 Consultas
Formulários
 Relatórios
 Macros
Módulos
ActiveX
 AutomaçãoOLE
 Gráficos
 DAO
 SQL
 Segurança
Redes/ODBC
 Dicas
 Curso Online
Wizards
Ferramentas
Help
 Downloads
 Links
Novidades
FAQs
Index

SEGURANÇA



Senha através de InputBox ou Caixa de Texto - Mais uma colaboração do Gilson (gilson@oel.com.br): "consegui fazer a senha aparecer com os asterísticos e também limpar o campo da senha quando do retorno de outro formulário para o formulário da senha."

Recuperação de Banco de Dados danificado - Um verdadeiro manual para recuperação de bancos de dados danificados. Tradução livre de um dos artigos Knowledge Base Access. Muito Bom.

Atalho para Sistema seguro - Esta foi uma dica enviada pelo Paulo (pbrazo@bol.com.br). Quando temos algum sistema no qual implementamos a segurança, este sistema somente pode ser aberto quando nos associamos ao seu grupo de Trabalho. Isto as vezes é meio incômodo, principalmente se precisamos abrir várias vezes este sistema e voltamos para o grupo padrão do Access. Aí entra a dica: crie um atalho que abre o sistema seguro já associado ao grupo.

Reparar Banco de Dados Access 2000 - Um utilitário desenvolvido pelo Claudio Fartes (ecsolutions@uol.com.br) para reparar Bancos de Dados Access danificados.

Reparar Banco de Dados Access 97.

Mais um programa para mostrar a senha de BD. Enviado pelo colega Sames Davis (samesdavis@mailbr.com.br).

Como quebrar a senha de banco de dados do Access?
Veja este pequeno BD que mostra a senha de um Banco de Dados Access. Detalhe é que esta rotina somente mostra a senha quando ela foi colocada apenas no Banco de dados. Quando a segurança foi implantada a nível de usuário e de objeto este método não pode exibir a senha.
Este exemplo também vem com uma API (OpenFile).

1) PASSO-A-PASSO PARA IMPLEMENTAR SEGURANÇA NO ACCESS 97 *

2) Expirar tempo de uso de Sistema *

3) Número do winchester para Evitar Pirataria de Sistema *

4) Registro de Software *
 

1) PASSO-A-PASSO PARA IMPLEMENTAR SEGURANÇA NO ACCESS 97

Olá Ribamar!

Já ouví muita gente reclamando (ou zombando) da segurança do Access dizendo que naqueles tempos da versão 2 bastava copiar um arquivo system.mda novo sobre o utilizado atualmente para pôr abaixo todas as nossas defesas.

Na verdade, a falha está na implementação da segurança, que exige a observação de uma série de detalhes. Se esquecermos de qualquer um, deixamos nosso trabalho vulnerável.

O Access por default dá direitos de administração ao usuário. Isto ocorre sempre que a senha do usuário Administrador estiver em branco. Esta é a principal falha de alguns bancos de dados supostamente seguros: o usuário Administrador é o usuário default do Access. Se substituirmos o arquivo MDA/MDW de sua aplicação pelo arquivo System.mda/mdw default, seremos automaticamente validados como Administrador, e consequêntemente poderemos acessar seu banco de dados. A mesma regra vale para usuários e grupos de usuários.

Resumindo, sugiro que você siga rigorosamente os passos seguintes para se

obter uma boa segurança inviolável de seu MDB:

Dica: Caso deseje criar um menu para seu sistema, deixe para criar depois de implantar a segurança, sob pena de perder seu trabalho. Isso levando em conta que está criando com um dos Wizards da Microsoft: Menu Builder ou Command Bar Wizard.

1. Planeje cuidadosamente a segurança de seu banco de dados (usuários, permissões e senhas);

2. Crie um Grupo de Trabalho seguro, executando o Administrador de Grupos de Trabalho do Access: c:\windows\system\wrkgadm.exe.
Lembre-se de que o Access deve estar fechado.

3. Usando o utilitário acima, associe-se a este grupo criado;

4. Crie o usuário supervisor (Abra o Access - pode ser sem qualquer BD aberto -, Ferramentas, Segurança, Contas de usuário e grupo... Usuário – Novo.
Digite um nome (Supervisor) e uma identificação para ele (supervisor ou outra);

5. Continuando vá em “Alterar senha de logon” e Estabeleça uma senha para o Administrador (Deixe a Senha atual em branco – caso ainda não tenha uma e digite a Nova senha e confirme), para que na próxima vez seja aberta a janela de logon do Access;

6. Ainda na janela Contas de usuário e grupo, acrescente o usuário supervisor ao grupo dos administradores (Com o usuário Supervisor selecionado na caixa Nome, em Usuário, Administradores estando selecionado em Grupos disponíveis, clique em Adicionar);

7. Crie os demais usuários e grupos (Usuário faça como fez para criar o Supervisor, Grupos, vá na aba Grupos, Novo e dê um Nome e uma Identificação para ele(s));

8. Saia do Access e entre novamente, identificando-se como supervisor (como você ainda não deu uma senha ao Supervisor, basta digitar o Nome e Enter ou Ok);

9. Acesse Ferramentas – Segurança – Contas de usuário e grupo e retire do grupo administradores o usuário Administrador:
- Deixe Administrador selecionado na caixa Nome,
- Em Usuário e abaixo clique em Remover, para que Administradores seja eliminado de Membro de:
- Lembrar que isso remove apenas o usuário Administrador do grupo Administradores. Dê OK;

10. Crie um novo banco de dados (onde o usuário supervisor será o
proprietário). Aqui você pode simplesmente fechar o Banco de Dados atual sem fechar o Access e criar um novo, onde o Supervisor será o proprietário;

11. Retire os direitos de acesso dos grupos default (administradores e usuários).
- Vá em Ferramentas, Segurança, Permissões para usuário e grupo.
- Em Listar: clique no botão de opção Grupos.  Selecione Administradores acima e em Tipo de objeto: selecione Banco de Dados retire todas as permissões.
- Confirme e faça o mesmo com o grupo Usuários;

12. Importe os objetos de sua aplicação para o novo arquivo MDB
- Na Janela Banco de Dados, na aba Tabelas, clique com o botão direito – Importar – Indique o BD.
- Assim faça com os demais objetos (consultas, forms, etc)

13. Defina permissões para os grupos
- Ferramentas – Segurança - Permissões para usuário e grupo
– Listar: Grupos e defina as permissões que deseja. Idem para os usuários).
Dica: Lembre que pode usar o recurso de selecionar a primeira tabela, pressionar Shift e selecionar a última para selecionar todas.;

14. Teste seu aplicativo, tentando abri-lo em outro computador, tentando acessar áreas restritas com os diversos usuários do sistema.

Depois de testado, faça um beckup do novo arquivo system.mdw e gere um MDE do seu sistema.

Abraços,

Vagner Izaias Ferreira

Vagner'Soft Informática Ltda.
 
 

2) Expirar tempo de uso de Sistema

Origem: Carlos Eduardo

Testado na versão: 7.0

Passos:

1 - Crie uma tabela com os seguintes campos:

Nome Tipo de Dados

Código Número (Chave primária)

DataExp Data

2 - Salve a tabela com o nome de DataExpirar;

3 - No formulário que você tem como o primeiro a ser aberto junto com o banco de dados, no

evento Ao Abrir do formulário, coloque a seguinte rotina:

Dim db As DATABASE, t1 As Recordset

Set db = CurrentDb

Set t1 = db.OpenRecordset("DataExpirar", dbOpenDynaset)

If t1.BOF = True Then

t1.AddNew

t1![Código] = 1

t1![DataExp] = Date + 30 'Esta linha soma a data atual mais 30 dias

t1.Update

Else

If t1![DataExp] < Date Then

Beep

MsgBox "O prazo de utilização deste aplicativo se esgotou!", vbCritical

Application.Quit acPrompt

End If

End If

t1.Close

4 - Está pronto. Quando o formulário de abertura inicializar, irá verificar se há alguma data

cadastrada, caso isso já tenha ocorrido, a rotina irá verificar se já expirou a data.

Para teste digite uma data com mais de 30 dias anterior a atual.
 
 

3) Número do winchester para Evitar Pirataria de Sistema

Enviado por: Carlos Eduardo

Testado na versão: 7.0

Passos:

1 - Crie uma tabela com os seguintes campos:

Nome Tipo de Dados

Código Número (Chave primária)

NumSerial Texto

2 - Salve a tabela com o nome de Serial;

3 - Crie um novo módulo e coloque o seguinte texto (tudo numa única linha):

Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal

lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As

Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,

lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal

nFileSystemNameSize As Long) As Long

4 - Salve o módulo com qualquer nome.

5 - No formulário que você tem como o primeiro a ser aberto junto com o banco de dados, no

evento Ao Abrir a seguinte função:

Dim lVSN As Long, n As Long, s1 As String, s2 As String

Dim unidade, Serie As String

Dim sTmp As String

Dim db As DATABASE, t1 As Recordset

On Local Error Resume Next

'especifica-se o diretorio raiz

unidade = "C:\"

'Reservando espaço para os string que serão passados para a API

s1 = String$(255, Chr$(0))

s2 = String$(255, Chr$(0))

n = GetVolumeInformation(unidade, s1, Len(s1), lVSN, 0, 0, s2, Len(s2))

's1 terá o label da unidade

'lVSN terá o serial number

's2 indica o tipo de gravação de arquivo (se FAT, etc...)

'Numero IVSN (serial number) é convertido para hexadecimal para ser mostrado como no DIR

sTmp = Hex$(lVSN)

'Me.Text1 = s1

Serie = Left$(sTmp, 4) & "-" & Right$(sTmp, 4)

'Me.Text3 = s2

Set db = CurrentDb

Set t1 = db.OpenRecordset("Serial", dbOpenTable)

'Valor1 = t1![NumSerial]

If t1.BOF = True Then

t1.AddNew

t1![Código] = 1

t1![NumSerial] = Serie

t1.UPDATE

'MsgBox t1![NumSerial]

Else

If t1![NumSerial] <> Serie Then

MsgBox "Desculpe, mas este aplicativo não pode ser executado neste computador e será

fechado!", vbCritical

Application.Quit acPrompt

End If

End If

t1.Close

6 - Está pronto. Quando o formulário de abertura inicializar, irá recolher o número de série do

winchester e caso não esteja armazenado na tabela será gravado e se já estiver, a função irá

comparar para ver se o BD está no mesmo computador.

Observação: Se você desejar mostrar os dados em formulário, crie três caixas de textos

com os respectivos nomes: Text1, Text2 e Text3. E retire o ' (apóstrofo) nas linhas que

comecem com 'Me.Tex.. .
 

4 Registro de Software

Você não é obrigado a registrar seu software em lugar nenhum. Apenas para resguardar suas marcas de pirataria, voce pode registrar o nome do software (para isto voce tem que ter CGC) no INPI (www.inpi.gov.br), e pode tambem registrar o software na SEI (Secretaria Especial de Informatica - o pessoal do INPI te orienta neste sentido).

As licencas de utilizacao de software sao como licencas de utilizacao de propriedade intelectual. Voce paga apenas ISS (0,5 a 5% dependendo da sua prefeitura), e ICMS sobre o valor dos disquetes/CDs de distribuicao (não sobre o valor do software).

Por exemplo, se voce vende um software em um CD, por R$ 99,00, voce paga ISS

sobre R$ 96,00 e ICMS sobre R$ 3,00 (valor do CD).

Voce ainda tem a prerrogativa de vender o software como "servicos de desenvolvimento de software", se o produto nao for de pratileira. Neste caso, voce paga apenas ISS.

Cordialmente,

Sergio A. Albuquerque

http://www.worknet.com.br

OUTRO:

Primeiramente, todos os softwares utilizados na confecção do seu sistema têm que ser oficiais e registrados junto aos respectivos fabricantes, para que você não seja acusado de pirataria.

Para o desenvolvedor nada é necessário, uma vez que as profissões relativas à Informática não foram regulamentadas. Juridicamente, "não existem" Analistas de Sistemas, Programadores, etc...

No final, depois de pronto, o seu sistema deve ser registrado junto ao INPI (Instituto Nacional de Propriedade Industrial) para que você tenha direitos exclusivos sobre ele.

Quando você tiver clientes, faça contratos de "Cessão de Direito de Uso", e não de venda de software. Ou seja, você permite que seus clientes utilizem seu software, mas eles não são donos do seu sistema.


1