Seguridad Consultas - MsQuery

26/07/2007 - 23:44 por borrego | Informe spam
mi nombre es Raul Delgado Zamora, le mucho me apoyaran a resolver un
problemita que tengo de seguridad, tengo una tabla dinamica que accesa
a datos de una base de datos de exel, yo quisiera limitar el acceso al
asistente de tablas dinamicas ya que una persona con conocimientos
sobre tablas dinamicas puede ocupar el asistente para modificar la
consulta y obtener informacion confidencial, por lo que quiero
limitar o mejor dicho impedir el acceso al asistente de tablas
dinamicas, asi como la opcion del menu " modificar la consulta" -- les
agradeceria mucho tu apoyo..
 

Leer las respuestas

#1 Héctor Miguel
27/07/2007 - 06:02 | Informe spam
hola, Raul !

... tengo una tabla dinamica... ... quisiera limitar el acceso al asistente de tablas dinamicas
ya que una persona con conocimientos sobre tablas dinamicas puede ocupar el asistente
para modificar la consulta y obtener informacion confidencial
por lo que quiero... impedir el acceso al asistente de tablas dinamicas
asi como la opcion del menu " modificar la consulta" [...]



1) considera que si tus datos *confidenciales* ESTAN AHI...
ya se esta corriendo el riesgo de que *alguien* [de algun modo] los pueda ver :-((

2) dichos comandos tienen las 'ID' siguientes [excel 97 a 2003... 2007 es... *cosa aparte* :))]:
asistente de tablas dinamicas = 457
modificar consultas = 1950

3) si las macros no son *problema* [ya sea por politicas empresariales, o lo que sea]...
te sugiero el procedimiento al final del presente
-> cada vez que tu libro sea el libro activo, dichos comandos no estaran *disponibles*
[obviamente] cuando tu libro se cierre [o se active otro] volveran a su estado *normal* [disponibles] ;)
-> sobra mencionar que pasaria si tu libro se abre *sin permiso* de usar sus macros :-((

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

a) en un modulo de codigo *normal/general/estandar/...* copia/pega las siguientes instrucciones:

Option Private Module
Function ActivarComando( _
ByVal Boton As Integer, _
ByVal Activado As Boolean)
Dim Barra As CommandBar: On Error Resume Next
For Each Barra In Application.CommandBars
Barra.FindControl(Id:=Boton, Recursive:=True).Enabled = Activado
Next
End Function

b) en el modulo de codigo de *ese* libro [ThisWorkbook] copia/pega las siguientes instrucciones:

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
ActivarComando 457, False
ActivarComando 1950, False
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
ActivarComando 457, True
ActivarComando 1050, True
End Sub

Preguntas similares