SEGURANÇA
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.. .
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.