Bonjour
Voici ce que je veux faire.
J'ai dans un site web, un répertoire "private" qui est protégé par un role d'Active directory (groupe). L'utilisateur doit faire parti de ce groupe pour avoir accès aux pages de ce répertoire. Dans mon web.config au root du site web j'ai ajouté ceci :
Ceci fonctionne parfaitement. Maintenant, dans une des pages du répertoire Private, j'ai une page qui se connecte à SQL Serveur et permet d'exécuter une job dans SQL. Cette page fonctionne à merveille quand j'utilise l'usager SA de sql serveur. Par contre, quand j'utilise dans le code un compte usager AD (Qui à tout les droits possibles sur le serveur et le serveur SQL), il me donne une erreur comme quoi l'usager n'a pas les autorisations ????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <location path="Private"> <system.web> <authorization> <allow users="14REGIONAL\UnUsagerAdmin"/> <allow roles="BUILTIN\Administrators, DOMAIN\UnGroupeAdmin"/> <deny users="*"/> </authorization> </system.web> </location>
Est-ce qui ne comprends pas comment faire ?? Est-ce que c'est vraiment l'usager qui n'a pas les droits nécéssaire pour exécuter le job SQL ? ;-) J'ai besoin d'aide ! MErci beaucoup
Code de ma fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Protected Sub btnstartSSISJob_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnstartSSISJob.Click Dim timeout As Integer = 3600 Dim jobname As String = "jobSSIS_GestionIntervention" Try Dim con As New Microsoft.SqlServer.Management.Common.ServerConnection() con.ServerInstance = "NomduServeur" con.ConnectAsUserName = "domain\NomDeLusager" con.ConnectAsUserPassword = "MotDePasse" 'creation de l'objet serveur Dim egbi2k5 As New Microsoft.SqlServer.Management.Smo.Server(con) 'execute le job si il existe. If egbi2k5.JobServer.Jobs.Contains(jobname) Then 'PLANTE ICI Dim oLastRunDate As DateTime = egbi2k5.JobServer.Jobs(jobname).LastRunDate egbi2k5.JobServer.Jobs(jobname).Start() Dim nb_sec As Integer = 0 While oLastRunDate = egbi2k5.JobServer.Jobs(jobname).LastRunDate egbi2k5.JobServer.Jobs(jobname).Refresh() If nb_sec < timeout Then nb_sec += 1 System.Threading.Thread.Sleep(1000) Else 'envoi d'email lblLogSSISJob.Text = "Time out : le process est trop lent" Console.WriteLine("time out: le process est trop lent") End If End While lblLogSSISJob.Text = "La mise à jour du cube s'est terminée avec succès !" Console.WriteLine("fin") Return Else Return End If Catch ex As SqlException If ex.ErrorCode = -2146232060 Then lblLogSSISJob.Text = "Il y a présentement déjà une mise à jour des cubes !" End If End Try End Sub
Partager