Acceso a una base de datos SQL SERVER remota

Tengo que acceder a una base de datos que esta en un servidor SQL SERVER remoto del cual no tengo privilegios administrativos.
Tengo entendido que mediante los proyectos de access (. Adp) se puede realizar esta conexión sin necesidad de utilizar ODBC, y el acceso y manejo de los datos es mucho más rapido y eficiente.
La base de datos a la que quiero acceder tiene tablas de hasta 15 millones de registros.
Cuando quiero realizar una vista (consulta) y la ejecuto, me sale que debo guardar dicha vista, yo le puse el nombre Consulta1, y cuando lo hago me da el siguiente error:
Error de ADO: CREATE VIEW permission denied, database 'P@ynet_RMC', owner 'dbo'
¿Necesito ser administrador de esa base de datos remota para poder trabajar directamente en el proyecto de access con dicho servidor SQL SERVER?
Si tienes algún tipo de sugerencia serán bienvenidas.
Mi proyecto consiste en utilizar la data de esa base de datos remota para crear reportes estadísticos.

2 respuestas

Respuesta
1
El error te sale porque no tienes derecho de crear consultas en dicho servidor.
Tu PRINCIPAL opción es hacer un proyecto en Visual Basic 6, crear un proyecto de Datos con el control DataEnvironment.
Que te conecte con la tabla y a ella hacerle consultas SQL para los datos estadísticos que quieres
TE voy a dar unos datos que te ayudarán mucho
Paso 1 para enlazar a una Base de Datos a un proyecto VB 6, Asumo que la instalación está en Español
Hacer un nuevo Proyecto de tipo Proyecto de Datos, es el último de los tipos de Proyectos
Paso 2 Abrir el Explorador de Proyectos y Hacer doble clic sobre el control DataEnvironment 1, aparecerá una ventana en la cual se ve el control con una conexión debajo que representa la conexión que se hará, haz clic derecho sobre el dataenvironment y en elige en el menú que aparece "Opciones." y en la Asignación de Campos busca donde digan múltiples y debajo donde aparece TextBox, puedes cambiarlo a Microsoft DataGrid (a mi me gusta más) o al que quieras, esto es la asignación de los controles asociados. Aceptar y salir de Ahí
Paso 2 Párate ahora sobre el objeto Connection1 y da propiedades, es para elegir el motor de búsqueda, marca "Microsoft OLE DB provider for SQL SERVER" después oprime Next para elegir
Server Name: Aquí va el nombre del Servidor SQL o la IP de la máquina dónde está
Debajo: Autenticación, si eliges autenticación NT usarás la Trusted seguridadad, si no deseas esta, entonces da un user con derechos en la base de datos, preferiblemente usa al usuario sa (system admin) con su respectiva password, puedes después hacer un Test Connection para probar la conexión
3 Base de Datos: Nombre de la Base de Datos a la que te quieres conectar
Paso 3 Párate ahora sobre el objeto Connection1 y da clic derecho para elegir agregar comando (Command) y aparecerá un objeto debajo llamado Command1. Clic derecho sobre el para entrar a sus propiedades.
Nombre del Comando: Por defecto Command1, Conexión: Conection1, la que hicimos, Objeto de la Base Datos: Importantísimo, debes definir aquí si es una tabla, una view o un procedimiento, en tu caso, creo es una tabla y nombre del Objeto es el nombre de la Tabla que deseas cargar
Ultimo paso: Si en el explorador de Proyectos haces doble clic sobre Form1. Y arrastras command hacia el formulario, aparecerá un Gris sobre este con la tabla que deseas. Si dejaste las propiedades del Env con los controles text para los camps múltiples recuerdas, tendremos un problema con la navegación, solo verás el primero de la tabla
Solución: Inserta cuatro botones en tu formulario, llamalos Primero, atrás, siguiente, último
Este código ponlo en el evento clic respectivo para:
Botón Primero:
Private Sub primero_Click()
On local error resume next
DataEnvironment1.rsCommand1.MoveFirst
End Sub
Botón Atras:
Private Sub atras_Click()
On local error resume next
DataEnvironment1.rsCommand1.MovePrevious
End Sub
Boton siguente
Private Sub Siguente_Click()
On local error resume next
DataEnvironment1.rsCommand1.MoveNext
End Sub
Boton Ultimo
Private Sub ultimo_Click()
On local error resume next
DataEnvironment1.rsCommand1.MoveLast
End Sub
Puedes poner también un botón Insertar
Boton Insertar
Private Sub Insertar_Click()
On local error resume next
DataEnvironment1.rsCommand1.Addnew
End Sub
Te faltaría solamente salvar
Condiciones 1. Debes ir a las propiedades del comannd1 en el Dataenvironment1 y en avanzadas decir en tipo de bloque que por defecto es Read Only, poner Batch Optimistic.
Ahora insertar un boton que sea salvar y di
Boton Salvar
Private Sub Salvar_Click()
On local error resume next
DataEnvironment1.rsCommand1 .UpdateBatch
End Sub
Se que esto es trabajoso, pero si en la propiedades del COMMNAD oprimes SQL sentences
podrás escribir las sentencias SQL que necesitas
del tipo SELECT * from tabla where nombre=cuco y cosas por ese estilo incluyendo funciones como count y sum
que cuentan y suman
Esfuérzate un poco que lo lograrás
Respuesta
1
El problema que tienes es el siguiente, SQL Server dispone de un sistema de seguridad en el que puedes especificar a cada cuenta en particular qué cosas puede hacer, por ejemplo para tu caso necesitas que el administrador del servidor te asigne el privilegio de Crear vistas, así como existen privilegios de crear tablas o ver columnas, etc. Esto no implica que debas ser administrador ni del servidor ni de la base de datos, solo que se te asigne el permiso.
Por otro lado desde mi experiencia personal no te recomiendo usar Proyectos de Access por lo siguiente, si bien se emplean drivers nativos y es cierto que el acceso es más rápido y eficiente por alguna razón los proyectos access tienen problemas con los formularios y te comento un caso particular: diseñé una base de datos en SQL Server e hice el proyecto en Access; cuando diseñé unos formularios e intenté hacer un filtro en uno de ellos mediante código VBA éste se comportaba en forma extraña, en ciertos momentos funcionaba bien el filtro pero al querer realizar una operación aparecían todos los registros cosa que no sucede cuando usas una base de datos Access, ese es solo un problema de los muchos que tuve por lo que terminé haciendo una conexión ODBC y vinculando las tablas de SQL Server a una base de datos MDB común de Access.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas