Toon posts:

[SQL SERVER] application role setten *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, Ik heb het volgende probleem:

Ik heb een asp.net pagina in delphi 8, en nu connect ik aan een MS SQL SERVER database. Dit is geen enkel probleem. Maar zodra ik een application role wil setten, krijg ik problemen.. Ik doe het volgende:

code:
1
exec sp_setapprole "rolnaam","rolww";


Dit werkt WEL in een normale applicatie, maar dus niet bij web kenlijk.

Ik krijg de volgende error tijdens het runnen als hij dit uit voert:

Execute failed. SQL State: 42000, SQL Error Code: 15422 Application roles can only be activated at the ad hoc level.

Nu heb ik ergens gelezen dat deze error optreedt als ik een stored procedure aanroep vanuit een andere stored procedure... Maar ik zou niet weten waar dit het geval is of hoe je deze rechten aanpast oid..

Iemand? :/

[ Voor 7% gewijzigd door Verwijderd op 25-11-2004 11:01 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:25

gorgi_19

Kruimeltjes zijn weer op :9

Titel ietsie verbouwd; ASP.Net heeft er weinig mee te maken :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 22:22
Het hele concept van een application-role is dat je bij je connect al die application-role oppakt, toch ? Dus niet eerst inloggen en dan zeggen sp_setapprole, maar al direct in je connect-string de naam van je approle en je wachtwoord meegeven.

Was advocaat maar vindt het juridische nog steeds leuk. Doet tegenwoordig iets in de metaal.


  • klinz
  • Registratie: Maart 2002
  • Laatst online: 07-03 16:48

klinz

weet van NIETS

StevenK schreef op zaterdag 27 november 2004 @ 21:19:
Het hele concept van een application-role is dat je bij je connect al die application-role oppakt, toch ?
Nee, het idee is juist dat je met een normale rol inlogt die geen (behalve rechten op de database) of weinig rechten heeft. Door naar de application role over te schakelen kan de applicatie dan toch extra rechten verwerven.

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 22:22
In mijn beleving, maar ook die van o.a. de SQL documentatie, is het toch echt de bedoeling dat je direct bij de connect al die application-role gebruikt.

Verder, voor TS, ik heb 't net ff geprobeerd en wanneer ik eerst met NTLM aanlog op de database en daarna het volgende doe:
code:
1
myconnection.execute("sp_setapprole 'test','test'")

Dan werkt dat als een zonnetje, en geheel volgens de docu, als ik 't nog een keer probeer krijg ik een foutmelding omdat je maar één keer in een sessie sp_setapprole uit kunt voeren.

edit: ik zie net dat TS dubbele quotes om de rolename en het passwoord heen heeft staan ? Lijkt me niet de bedoeling ?

[ Voor 15% gewijzigd door StevenK op 28-11-2004 14:51 ]

Was advocaat maar vindt het juridische nog steeds leuk. Doet tegenwoordig iets in de metaal.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Het heeft 'm allemaal te maken met connection pooling. :)

Je opent je connectie de eerste keer, je zet je application role, je doet iets, je sluit je connectie, de connectie gaat terug naar de connection-pool... Later moet je weer iets gaan doen met de DB, je opent een connectie, die wordt uit de connectie-pool gehaald, je zet de application role, maar deze was al gezet en werd 'onthouden' toen de connectie in de pool zat..... Dit is een design fout van MS imho.

[rml][ SQL Server|.NET] Application roles in ASP.NET[/rml]

en dan vooral:
[rml]whoami in "[ SQL Server|.NET] Application roles in A..."[/rml]

:)

[ Voor 9% gewijzigd door whoami op 29-11-2004 08:48 ]

https://fgheysels.github.io/

Pagina: 1