Segurança
com o Microsoft Access XP - Parte 1
Neste artigo aprenderemos a fazer as configurações
de segurança para banco de dados do Microsoft Access. O Microsoft
Access oferece diferentes configurações de segurança,
dependendo das necessidades específicas da aplicação.
Podemos ter desde uma simples definição de senha para
abertura de um banco de dados, passando pela criptografia do banco
de dados, entrando nas refinadas configurações a nível
de usuário e finalizando com o uso de mecanismos de segurança
do próprio sistema operacional, no caso do Windows 2000 Professional
ou Windows XP Professional. Também é possível
combinar diferentes configurações, como por exemplo,
usar configurações a nível de usuário,
em conjunto com as configurações de segurança
do Sistema Operacional, para obter a melhor proteção
possível.
Por padrão, ao criarmos um banco de dados com o Microsoft
Access não são definidas configurações
de segurança, ou seja, qualquer usuário pode abrir
o banco de dados, alterar registros, inserir novos registros, excluir
registros e criar ou alterar quaisquer elementos do banco de dados
– tabelas, consultas, formulários, etc. Para muitas
situações práticas do dia-a-dia é necessária
alguma forma de proteger o acesso aos diversos elementos de um banco
de dados. Com as configurações que serão vistas
neste artigo você terá condições de definir,
em detalhes, os níveis de acesso aos diversos elementos de
um banco de dados.
Existem diferentes maneiras para fazer as configurações
de segurança para um banco de dados do Microsoft Access,
conforme listado a seguir:
Configurações de Sistema Operacional (Windows
NT Server, 2000 Professional ou Windows Server e XP Professional):
Estas configurações são feitas usando as opções
do próprio sistema operacional e serão vistas no último
artigo desta série. São as chamadas permissões
NTFS e de Compartilhamento.
Definição de uma senha para a abertura do
banco de dados: Esta é a configuração
de segurança mais simples de ser efetuada. Apenas definimos
uma senha, senha esta que deve ser fornecida toda vez que o banco
de dados for aberto. Se o usuário não souber a senha,
ele não conseguirá abrir o banco de dados. Se o usuário
souber a senha, ele consegue abrir o banco de dados e tem acesso
completo a todos os elementos do banco de dados: tabelas, dados,
consultas, formulários, relatórios, macros e módulos.
Definição de um grupo de trabalho, com criação
de contas de usuários e grupos de usuários, com definição
de permissões individualizadas, para os diferentes elementos
de um banco de dados: Estas configurações
são mais trabalhosas para serem definidas, porém nos
fornecem um nível de controle de acesso muito maior do que
os outros tipos de configurações de segurança.
Com estas configurações podemos definir diferentes
níveis de acesso, para diferentes usuários. Por exemplo,
o usuário jsilva pode ter apenas permissão para ler
os dados das tabelas de um banco de dados, já o usuário
maria pode ter permissão de leitura e alteração,
porém sem poder inserir novos registros ou excluir registros
existentes. Você aprenderá em detalhes a definir este
tipo de segurança, nessa série de artigos. Este tipo
de segurança é conhecido como
"Segurança
a Nível de Usuário".
Também será abordada a importância de "Criptografar"
um banco de dados que contenha informações confidenciais.
Nesse primeiro artigo sobre segurança no Access XP, abordaremos
os seguintes tópicos:
Definição de uma senha para abertura de um banco
de dados;
Como criptografar um banco de dados;
A teoria da Segurança a Nível de Usuário.
Nos próximos dois artigos da serão abordados os seguintes
tópicos:
Exemplo prático de configuração de Segurança
a Nível de Usuário.
Recursos de segurança do Sistema Operacional para proteger
o banco de dados.
Definição de uma senha para
a abertura do banco de dados:
Após definir uma senha para o banco de dados, esta senha
deverá ser digitada toda vez que o banco de dados for aberto.
A senha é individual para cada banco de dados - arquivo .mdb.
Se o usuário esquecer a senha não terá mais
como abrir o banco de dados (na prática existem programas
comerciais capazes de “descobrir” essa senha, tais como
o Passware Kit no site
www.lostpassword.com.
Por isso que esse tipo de configuração é extremamente
frágil e não recomendada na prática). Conhecendo
a senha o usuário tem acesso ao banco de dados e "poderes
totais" sobre todos os elementos do banco de dados. Pode criar
novos registros, excluir e alterar registros, criar novas tabelas
ou excluir as tabelas existentes, criar novos formulários,
alterar ou excluir os formulários existentes e assim por
diante.
Este tipo de segurança é conhecido como segurança
de nível compartilhado (shared-level security).
Para definir uma senha de abertura siga os seguintes passos:
1. Abra o banco de dados para o qual você deseja
definir uma senha. Para o nosso exemplo, abra o banco de dados
segurança.mdb. Para que você possa definir uma senha,
o banco de dados deve ser aberto em modo exclusivo. Para abrir
um banco de dados em modo exclusivo, clique na setinha para baixo
ao lado do botão Abrir e no menu de opções
que surge selecione a opção "Abrir
exclusivo", indicado na Figura 1 Antes de selecionar
a opção Abrir exclusivo o banco de dados Segurança.mdb
já deve estar selecionado.
Figura 1 – Abrindo o banco de dados
Segurança.mdb no modo exclusivo.
2. Selecione o comando: Ferramentas -> Segurança
-> Definir senha do banco de dados...
3. Surge a janela "Definir a senha do banco de dados",
onde devemos digitar a senha duas vezes, para confirmação.
Digite a seguinte senha: senha123. Digite a senha
novamente no campo Confirmar, conforme indicado na Figura 2. Dê
um clique no botão OK e pronto, a senha do banco de dados
será definida.
Figura 2 – Definindo a senha do
banco de dados.
4. Feche o banco de dados Segurança.mdb e abra-o novamente.
Surge a janela indicada na Figura 3, solicitando que você
digite a senha. Digite a senha definida no passo anterior (senha123)
e dê um clique no botão OK.
Figura 3 – Janela solicitando que
você digite a senha definida anteriormente.
5. O banco de dados Segurança.mdb será aberto e
o usuário terá acesso completo a todos os elementos
(tabelas, consultas, etc) do banco de dados.
6. Para fazer com que não seja mais necessária a
digitação da senha de abertura, basta utilizar o
comando Ferramentas -> Segurança -> Definir
senha do banco de dados... e definir uma senha em branco.
Esta é a configuração de segurança mais
simples que existe. Ao mesmo tempo que é simples de implementar,
não apresenta maiores recursos, tais como a definição
de permissões para diferentes usuários ou grupos de
usuários. Pode ser utilizado quando um único usuário
utiliza o banco de dados e quer proteger o acesso ao banco de dados
através da definição de uma senha.
Protegendo os dados - Criptografando o banco
de dados:
Mesmo que sejam implementadas todas as configurações
de segurança descritas neste tópico, uma pessoa não
autorizada ainda será capaz de ler os dados de um banco de
dados do Microsoft Access, utilizando um "Editor Binário
de Discos". Um Editor Binário de Discos é um
programa capaz de ler as informações de um arquivo
diretamente do disco rígido, sem ter que abrir o arquivo
utilizando o Microsoft Access. Como não foi utilizado o Microsoft
Access, todas as configurações de segurança
não terão efeito, ou seja, o usuário será
capaz, com o Editor de Discos, de ler as informações
contidas no arquivo .mdb.
Para resolver este problema de segurança, você deve
"criptografar" as informações contidas o
banco de dados (arquivo .mdb). Ao criptografar as informações,
estas tornam-se ilegíveis quando lidas diretamente do disco
rígido, utilizando um Editor Binário de Discos. Somente
ao abrir o arquivo usando o Microsoft Access é que as informações
poderão ser descriptografados, tornando-se novamente legíveis.
Ao abrir o arquivo com o Microsoft Access, todas as definições
de segurança que foram configuradas, serão aplicadas.
Para criptografar um banco de dados (arquivo .mdb), faça
o seguinte:
1. Abra o Microsoft Access.
IMPORTANTE: O Arquivo a ser criptografado não
pode estar aberto. Se o arquivo estiver aberto será gerada
uma mensagem de erro e a criptografia não prosseguirá.
2. Selecione o comando: Ferramentas -> Segurança
-> Criptografar/Descriptografar banco de dados...
3. Surge a "Criptografar/Descriptografar banco de dados",
para que você selecione o arquivo a ser Criptografado. Selecione
o arquivo Segurança.mdb e dê um clique no botão
OK.
4. Se o banco de dados a ser criptografado tiver uma senha definida,
o Microsoft Access solicitará a senha do banco de dados.
Digite a senha e dê um clique no botão OK.
5. O Microsoft Access abre a janela "Criptografar banco de
dados como". Nesta janela você define a pasta onde
será gerada uma cópia criptografada do banco de
dados Segurança.mdb, bem como o nome da cópia criptografada.
É possível gerar a cópia criptografada na
mesma pasta e com o mesmo nome do banco de dados original, com
isso o banco de dados original será substituído
pela versão criptografada. Nesse caso você deve,
sempre, fazer uma cópia de segurança do banco de
dados antes de tentarmos criptografá-lo. Para o nosso exemplo
informe o nome Segurança Criptografado.mdb como nome do
arquivo, conforme indicado na Figura 4:
Figura 4 – Definindo um novo nome
para a versão criptografada do banco de dados.
6. O Microsoft Access criptografa o banco de dados Segurança.mdb
e salva a versão criptografada com o nome de Segurança
Critografado.mdb, conforme definido no item anterior. Se o banco
de dados original tiver uma senha definida, a cópia criptografada
também terá a mesma senha.
IMPORTANTE: Cada vez que o Microsoft Access abre
um banco de dados criptografado, ele precisa descriptografar os
diversos objetos do banco de dados (Tabelas, Consultas, Formulários,
etc) a medido que estes forem sendo utilizados. A operação
de criptografar/descriptografar faz com que haja uma queda no
desempenho do banco de dados, da ordem de 15% (segundo a Ajuda
do Access XP). Em outras palavras, a criptografia/descriptografia
torna as operações com o banco de dados um pouco
mais lentas.
Configurando a segurança a nível
de usuário – um pouco de teoria:
Conforme descrito anteriormente, a definição de uma
senha para o banco de dados somente é aconselhável
em situações em que o banco de dados é utilizado
por um único usuário. Para ambientes mais complexos,
onde existe um grupo de trabalho que deve ter acesso ao banco de
dados, sendo que diferentes participantes do grupo devem ter diferentes
níveis de acesso aos elementos do banco de dados (somente
consulta, consulta e alteração, consulta, alteração
e exclusão e assim por diante), deve ser utilizada a segurança
a nível de usuário (em combinação com
as configurações de segurança do Sistema Operacional,
para um nível de proteção máximo) .
Se você quiser definir permissões de acesso individualizadas
para cada usuário, em cada elemento de um banco de dados
do Microsoft Access, você precisa utilizar as configurações
de segurança a nível de usuário.
As configurações de segurança a nível
de usuário são definidas através da criação
ou associação a um arquivo que define um Grupo de
Trabalho. O arquivo que define o Grupo de Trabalho tem a extensão
.mdw (m – Microsoft, d- Database, w- Workgroup), normalmente
com o nome System.mdw na pasta de instalação do Office
(normalmente: C:\Arquivos de Programas\Microsoft OfficePRO\Office).
Uma vez definido o Grupo de Trabalho você pode criar contas
de usuários e grupos. Cada usuário tem a sua própria
senha e, ao abrir o banco de dados deve ser informado o nome do
usuário e a respectiva senha. Com base no nome do usuário,
o Microsoft Access aplica as restrições de segurança
previamente definidas.
Além de usuários podemos criar grupos de usuários.
Por exemplo, você pode criar um grupo chamado
PerfilConsulta.
Em seguida definir que o grupo
PerfilConsulta somente
deve ter permissões para consultar os dados, não podendo
fazer alterações, inclusões ou exclusões
de registros. Ao cadastrar um novo usuário, que deve ter
permissões somente de consulta, basta incluir o usuário
como membro do grupo
PerfilConsulta e este novo
usuário irá
"herdar" todas as permissões
atribuídas ao grupo. Se um usuário pertencer a mais
de um grupo, ele irá herdar as permissões dos diversos
grupos, permissões estas que serão cumulativas. Por
exemplo, vamos supor que o usuário jsilva pertence ao grupo
PerfilConsulta, grupo este que tem somente permissões
para consultar aos dados; e que o usuário jsilva também
pertence ao grupo
PerfilAlteração,
grupo este que tem permissão para alterar os dados. O usuário
jsilva, por pertencer aos dois grupos, irá herdar as duas
permissões e, com isso, poderá consultar e também
alterar os dados.
Com a segurança a nível de usuário você
pode chegar a um nível de detalhamento que não é
possível com os outros tipos de configurações
de segurança. Por exemplo, um determinado usuário
pode ter permissão para executar uma consulta, sem ter permissão
para alterar a consulta no modo estrutura. Um outro usuário
pode ter permissão somente para consultar os dados de uma
tabela enquanto tem permissões para alterar os dados de uma
segunda tabela.
Para definir as configurações de segurança
a nível de usuário, devemos seguir os seguintes passos:
1. Utilizar o Administrador de Grupos (wrkgadm.exe)
para fazer a associação com um arquivo de Workgroup
(.mdw) existente ou para criar um novo arquivo de Workgroup.
2. Definir uma senha não nula para o usuário Admin.
3. Criar um novo usuário que passará a ser o Administrador
do banco de dados. O Administrador é o usuário com
permissões completas sobre todos os elementos do banco
de dados.
4. Adicionar o usuário criado no passo 3., como membro
do grupo Admins.
5. Fazer o logon com a conta do novo Administrador, criar um banco
de dados em branco e importar os objetos do banco de dados original.
Esta operação é feita para alterar o "dono"
do banco de dados, evitando problemas de segurança, conforme
será detalhado mais adiante.
6. Remover a conta Admin do grupo Administradores.
7. Criar usuários e grupos, de acordo com os usuários
e perfis de acesso que serão necessários.
8. Colocar cada usuário como membro de um ou mais grupos,
conforme a necessidade de acesso do usuário.
9. Retirar todas as permissões do grupo Usuários.
10. Definir as permissões para os grupos criados no passo
7, de acordo com o perfil de acesso de cada usuário.
A partir de agora você vai aprender os passo necessários
para executar cada um dos passos da listagem anterior. Para aprender
os diversos passos, vou utilizar um exemplo prático, onde
definiremos diversas configurações de segurança
para o arquivo Segurança.mdb. Nos demais artigos da série
você aprenderá, passo-a-passo, a executar cada uma
das ações necessárias para completar os passos
indicados na listagem anterior.
Para exemplificar as diversas configurações de segurança
disponíveis no Access XP, você irá criar diversos
usuários e grupos. Serão criados os seguintes usuários:
jsilva
maria
pedro
carlos
andreia
carla
A tabela a seguir descreve de quais grupos cada usuários
fará parte:
Usuário |
Pertence aos seguintes grupos |
jsilva |
PerfilConsulta
PerfilAlteração
PerfilExclusão |
maria |
PerfilConsulta
PerfilAltCon
PerfilAltForm |
pedro |
PerfilConsulta
PerfilAltCon
PerfilAbreRel
PerfilAltTab |
carlos |
PerfilConsulta
PerfilAlteração
PerfilInclusões
PerfilExclusão
PerfilTudo |
andreia |
PerfilConsulta
PerfilAlteração
PerfilInclusões
PerfilExclusão |
carla |
PerfilConsulta
PerfilAbreForm
PerfilAbreRel |
Descrição das permissões que terá cada
grupo de usuários:
PerfilConsulta: Os membros deste grupo terão
permissões apenas para ler os dados de uma tabela, sem fazer
quaisquer alterações, inclusões ou exclusões.
Também terão permissões para abrir consultas.
PerfilAlteração: Os membros deste
grupo terão permissões para ler e alterar dados nas
tabelas do banco de dados. Não poderão fazer inclusões
e exclusões.
PerfilExclusão: Os membros deste grupo terão
permissões para ler e excluir dados nas tabelas do banco
de dados. Não poderão fazer inclusões ou alterações.
PerfilInclusões: Os membros deste grupo
terão permissões para ler e adicionar dados (registros)
nas tabelas do banco de dados. Não poderão fazer exclusões
ou alterações.
PerfilConsulta: Os membros deste grupo terão
permissões executar consultas no banco de dados.
PerfilAltCon: Os membros deste grupo terão
permissões para acessar o Modo Estrutura e alterar a estrutura
das consultas no banco de dados.
PerfilAltTab: Os membros deste grupo terão
permissões para acessar o Modo Estrutura e alterar a estrutura
das tabelas no banco de dados.
PerfilAbreRel: Os membros deste grupo terão
permissões para abrir os Relatórios no banco de dados.
PerfilAbreForm: Os membros deste grupo terão
permissões para abrir os Formulários no banco de dados.
PerfilTudo: Os membros deste grupo terão
permissões totais, ou seja, poderão efetuar qualquer
operação em qualquer elemento do banco de dados.
Existem alguns grupos e usuário que, por padrão, já
são criados durante a instalação do Access
XP.
Usuário Administrador: Esse usuário
tem permissões totais no banco de dados. O Microsoft Access
associa um identificador interno com cada conta de usuário.
Em termos efetivos de permissão o que vale é esse
identificador interno e não o nome do usuário. O identificador
interno do usuário Administrador é o mesmo para toda
e qualquer instalação do Microsoft Access. Essa implementação
pode trazer problemas de segurança. Na Parte II desse artigo,
você verá como eliminar o problema de segurança
associado a conta Administrador. Por padrão essa conta pertence
ao grupo Administradores, de onde herda todas as suas permissões.
Grupo Administradores: Por padrão esse grupo
tem permissões completas em todos os elementos do banco de
dados. O usuário Administrador é automaticamente incluído
como membro desse grupo. É possível retirar o usuário
Administrador desse grupo, porém sempre deve existir, pelo
menos, um usuário como membro desse grupo. Se você
tentar retirar o último usuário desse grupo, será
gerada uma mensagem de erro.
Grupo Usuários: Por padrão todas
as contas de usuários são membros do grupo Usuários
e não é possível retirá-las desse grupo.
Ao ser criada uma nova conta de usuário, esta é, automaticamente,
adicionada ao grupo Usuários. Definimos para o grupo usuários
aquelas permissões que devem ser atribuídas a todos
os usuários. Por exemplo, se todos os usuários devem
ter permissão para executar consultas, devemos atribuir essa
permissão ao grupo Usuários, com isso todos os usuários
herdarão esta permissão.
Conclusão
Neste artigo você, amigo leitor, foi apresentado aos aspectos
básicos de segurança do Access XP e à teoria
da Segurança em Nível de Usuário. Na Parte
II deste artigo veremos, passo-a-passo, como implementar a segurança
em nível de usuário. Entre em contato, envie as suas
críticas e sugestões para o seguinte e-mail:
webmaster@juliobattisti.com.br.
você conhece a universidade do access?
Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela
Aplica-se ao Access 2019, 2016, 2013 e 2010!
13 Cursos - 574 Vídeo-Aulas - 63:32 horas
Para todos os detalhes, acesse:
https://juliobattisti.com.br/universidade-do-access.asp