MS Access nível de usuário de segurança para o formulário para ser lido, mas de mesa para ser escondida

StackOverflow https://stackoverflow.com/questions/930654

  •  06-09-2019
  •  | 
  •  

Pergunta

Can segurança em nível de usuário habilitar alguém para acessar um formulário, mas não acessar uma tabela? Eu tenho um formulário que está ligado a uma tabela usando um comando "SELECT". Isso não acontece "UPDATE" ou "delete". Eu gostaria que o usuário acesse a minha forma, mas eu não quero que eles sejam capazes de ver os detalhes na tabela subjacente. Eu tentei todos os tipos de combinações no assistente de segurança em nível de usuário, mas por alguma razão, minha forma surge em branco, a menos que eu dar acesso completo ao usuário fazer qualquer coisa. Alguma ideia? By the way, eu estou no Access 2003.

Nenhuma solução correta

Outras dicas

Você poderia fazer um MDE e dar a seus usuários. Se você fizer isso, os usuários não serão capazes de ver nada, mas a interface do usuário que você forneceu.

Se suas tabelas estão no mesmo banco de dados Access como os formulários e consultas, você primeiro precisa "dividir o banco de dados" em um frontend e backend. Veja:

http://databases.about.com/od/tutorials/ss /splitaccessdb.htm

Para obter informações sobre como fazer isso. O frontend contém tudo, mas as mesas. O back-end contém as tabelas. O frontend está ligado às tabelas de back-end usando objetos "tabela ligada" no frontend.

Uma vez que o banco de dados é dividida, abrir o frontend em Access, e criar um MDE selecionando Ferramentas / Utilitários de banco de dados / Make MDE Arquivo na barra de menu. O MDE é o que você fornece para os usuários. Eles abri-lo da mesma forma que faria com qualquer outro banco de dados, exceto que eles não podem conceber qualquer um dos objetos.

Certifique-se de que você tem uma macro AUTOEXEC definido na interface, de modo que quando o MDE é aberta pelo usuário, que tem um ponto de entrada. O usuário não pode ver qualquer um dos objetos na MDE, por isso, se você não tiver uma macro AutoExec para abrir a primeira forma, nada vai acontecer quando tentam abrir o MDE.

Se você precisar a capacidade de gerenciar as tabelas vinculadas do MDE, permitindo que o usuário se conectar ao banco de dados de back-end com um diálogo File / Open, consulte o seguinte artigo:

http://www.mvps.org/access/tables/tbl0009.htm

É claro, nada disso impede os usuários de abrir o banco de dados back-end. Se você precisa de segurança mais forte, você pode converter o banco de dados back-end ao SQL Server Express. Mais informações aqui:

http://office.microsoft.com/en-us/access /HA102755371033.aspx

O que você está procurando uma consulta RWOP. Isso significa "correr com a permissão do proprietário."

Para fazê-lo funcionar, assumindo que você já tenha executado o assistente de segurança no seu front-end e back-end bancos de dados e ter permissões removida para os usuários até mesmo ler as tabelas, você, em seguida, criar uma consulta salva como o OrigemDoRegistro sua forma. Nas propriedades da consulta, ele é definido por padrão para as permissões executar como "usuário." Mudança que a "dono do" e salve a consulta. A consulta será executada com quaisquer permissões sobre a tabela base o proprietário da consulta tem. Se você estiver executando como um administrador com permissões completas, você vai querer definir as permissões da consulta salva para somente leitura (ou criar a consulta sob um logon de usuário que tenha acesso somente leitura para as mesas - é muito mais fácil para fazer o primeiro).

Algumas advertências:

  1. A segurança em nível de usuário é complicado. Se você perder sequer um passo delineado na segurança ULS papel branco, o aplicativo não será garantido. A maneira de testar isso é acesso aberto com um arquivo de grupo de trabalho padrão e, em seguida, veja se você pode acessar os objetos em seu banco de dados conectado como o usuário admin padrão. Se você puder, então você cometeu um erro em algum lugar ao longo da linha.

  2. A segurança em nível de usuário é atacada por quem quer. Isso não significa que não é útil, isso significa apenas que não é à prova de balas. Não se preocupe com isso tanto, como eu considerar a segurança como um problema muito um povo como um problema técnico - você tem que dar aos trabalhadores privilégios suficientes para fazer o seu trabalho, e você tem-lhes a confiança que eles não vão abusar dos privilégios você deu-los.

  3. se você estiver executando o Access 2007 e utilizando o formato ACCDB, consultas RWOP não estão disponíveis para você, como Jet segurança em nível de usuário não tem suporte para o formato ACCDB. Se você está usando o formato MDB, porém, ele vai funcionar muito bem na A2007.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top