Problema complicado con approle...

21/07/2004 - 19:13 por Cristián | Informe spam
Necesito activar para los usuarios de mi aplicación un rol
de aplicación que creé para ésta; establezco 2 conexiones
en mi aplicación; una con cursor de cliente y otra con
cursor de servidor, así, uso
==>conn.execute "set_approle "<== (aplicación en VB6)
directo desde los comandos de mi aplicación. El problema
es que, aunque asocié el rol de aplicación al rol
db_owner, me salen problemas de permisos, configuré uno a
uno los permisos del rol para todos los objetos de la bd y
aún así me genera errores, ahora pienso que talvez no se
activa el rol de aplicación así que hice una traza y me
sale el siguiente mensaje al activar el rol de aplicación:
==>--se encontró 'sp_setapprole' en el texto de este
suceso. --El texto se remplazó por este comentario por
motivos de seguridad <=No sé que está pasando realmente, según el BOL estoy
ejecutando bien el sp_setapprole pues no utilizo un sp ya
que (cito textual):"Sólo las instrucciones Transact-SQL
directas pueden ejecutar el procedimiento almacenado
sp_setapprole; no se puede ejecutar dentro de otro
procedimiento almacenado o desde una transacción definida
por el usuario."

Alguno de Uds. compañeros, que utilice esta característica
en sus programas, sería tan amable en señalarme cómo lo
hace para chequear si mis métodos están bien. Sino algún
consejo efectivo para solucionar mis problemas... Gracias!!

Preguntas similare

Leer las respuestas

#1 Javier Loria
21/07/2004 - 22:35 | Informe spam
Hola Cristian:
Si en la aplicacion estas usando ADO, es posible que tengas problemas
con el Pool de Conexiones de OLEBD. Dependiendo de como hagas el string de
Conexion debes hacer "Pooling=false;" o
"OLE DB Services = -2;".
Prueba a ver si con esto te funciona.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Cristián escribio:
Necesito activar para los usuarios de mi aplicación un rol
de aplicación que creé para ésta; establezco 2 conexiones
en mi aplicación; una con cursor de cliente y otra con
cursor de servidor, así, uso
==>conn.execute "set_approle "<== (aplicación en VB6)
directo desde los comandos de mi aplicación. El problema
es que, aunque asocié el rol de aplicación al rol
db_owner, me salen problemas de permisos, configuré uno a
uno los permisos del rol para todos los objetos de la bd y
aún así me genera errores, ahora pienso que talvez no se
activa el rol de aplicación así que hice una traza y me
sale el siguiente mensaje al activar el rol de aplicación:
==>--se encontró 'sp_setapprole' en el texto de este
suceso. --El texto se remplazó por este comentario por
motivos de seguridad <=> No sé que está pasando realmente, según el BOL estoy
ejecutando bien el sp_setapprole pues no utilizo un sp ya
que (cito textual):"Sólo las instrucciones Transact-SQL
directas pueden ejecutar el procedimiento almacenado
sp_setapprole; no se puede ejecutar dentro de otro
procedimiento almacenado o desde una transacción definida
por el usuario."

Alguno de Uds. compañeros, que utilice esta característica
en sus programas, sería tan amable en señalarme cómo lo
hace para chequear si mis métodos están bien. Sino algún
consejo efectivo para solucionar mis problemas... Gracias!!
Respuesta Responder a este mensaje
#2 Cristián
22/07/2004 - 00:25 | Informe spam
Lamentablemente Javier parece que no es ese el problema,
hice lo que me dijiste y sigue dándome errores de permisos
denegados, me parece que el approle no está siendo tomado
en cuenta. Si lo utilizas dime cómo lo haces para saber si
estoy bien. Saludos!!
Respuesta Responder a este mensaje
#3 Javier Loria
22/07/2004 - 01:52 | Informe spam
Hola Cristian:
Prueba hacer lo que quieres hacer desde el Query Analizer, a ver si te
funciona.
Si te funciona ahi, entonces es problema del codigo en VB y podemos
revisar esto. Si no te funciona es de SQL y podemos revisar el codigo de
SQL.
En cualquier caso postea el codigo respectivo.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Cristián escribio:
Lamentablemente Javier parece que no es ese el problema,
hice lo que me dijiste y sigue dándome errores de permisos
denegados, me parece que el approle no está siendo tomado
en cuenta. Si lo utilizas dime cómo lo haces para saber si
estoy bien. Saludos!!
Respuesta Responder a este mensaje
#4 Cristián
22/07/2004 - 02:46 | Informe spam
Javier: El role está archiprobado en el analizador, creo
que mi problema es un bug de sql server por lo que he
leído en otros foros. Te envío el código de vb que uso a
ver si te sirve. Es la conexión de lado del servidor la
que me causa problemas. Un saludo y muy agradecido por tu
ayuda... mañana reviso tu respuesta.

'Inicializo Conexiones
Dim ConStr As String
ConStr = Connections(ConnIndex, 1) & ";User ID=" &
Me.txtUserName.Text & ";Password=" & Me.txtPassword.Text
& ";Pooling=false"

Set mCons.MyConnCli = New ADODB.Connection
mCons.MyConnCli.CursorLocation = adUseClient
mCons.MyConnCli.ConnectionString = ConStr
mCons.MyConnCli.Open

Set mCons.MyConnSer = New ADODB.Connection
mCons.MyConnSer.CursorLocation = adUseServer
mCons.MyConnSer.ConnectionString = ConStr
mCons.MyConnSer.Open

If Not (mCons.MyConnCli.State = adStateOpen And
mCons.MyConnSer.State = adStateOpen) Then
MsgBox "Una o más conexiones con el servidor no han
podido ser abiertas" & vbNewLine & "Consulte a su
Administrador de Redes"
Exit Sub
End If

'>Inicio Role

mCons.MyConnSer.Execute "exec
sp_setapprole 'app_ecc2004', '1491625'"
mCons.MyConnCli.Execute "exec
sp_setapprole 'app_ecc2004', '1491625'"
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida