SQL Server - sp_OAMethod

 
Vista:

sp_OAMethod

Publicado por Darío (2 intervenciones) el 25/08/2023 01:29:04
Tengo una aplicación que utiliza SQL Server Express. Entre otras cosas necesitamos guardar fotos en el servidor en gran cantidad. Inicialmente la guardábamos en forma binaria en tablas usando varias bases de datos independientes por el tema del límite de 10GB de SQL Server, pero aún así se nos complica ese límite.

Por otro lado, guardarlas en forma de archivo en una carpeta del servidor requiere que cada usuario remoto esté registrado en el servidor y en una carpeta compartida, lo que complica el agregado de nuevos usuarios.

Buscando en internet encontré que con el siguiente código puedo subir una foto a un campo binario de una tabla y luego hacer que ese campo se transforme en un archivo físico dentro del servidor, sin que el usuario de Windows remoto esté registrado en el servidor. (Aclaro que el sistema para conectarse a SQL Server usa un usuario fijo que los usuarios de la aplicación desconocen).

Lo implemento con el siguiente código

EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @IMG_PATH
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @Destino, 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken

y funciona perfecto. Solo que en la carpeta del servidor tuve que configurarla como compartida con todos los usuarios del servidor (aunque repito que el usuario de windows remoto no esté registrado como usuario en el servidor).

Sin embargo quisiera reducir mas el acceso a esa carpeta pero no se cual es el usuario específico que usa SQL Server para realizar la operación.

Desde ya, agradezco cualquier ayuda

Darío
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

sp_OAMethod

Publicado por Isaias (4558 intervenciones) el 26/08/2023 21:47:24
El usuario que utiliza SQL Server para "conversar" con el sistema operativo, es el que ARRANCA los servicios de SQL Server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

sp_OAMethod

Publicado por jorge (2 intervenciones) el 28/08/2023 03:16:57
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar