IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

AlwaysOn Cluster & LogOn Trigger [2014]


Sujet :

Administration SQL Server

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut AlwaysOn Cluster & LogOn Trigger
    Salut a tous,

    je rencontre un "petit" problème suite a l´installation d´un Trigger LOGON sur les nodes d´un de nos clusters:
    Le Trigger LOGON filtre simplement les tentatives de connections, compare a une table "white list" et accepte, ou non la connection selon la présence de l´IP dans la table.

    Cependant, depuis l´activation du trigger: je suis dans l´incapacité de faire basculer les nodes entre eux, de facon manuelle ou non. Le Cluster se casse la figure.

    Le trigger bloque quelque chose malgré le fait d´avoir ajouté TOUTES les adresses IP dans la liste blanche (logiques ET physiques).

    Est-ce que quelqu´un aurait là une idée ?

    Merci d´avance pour toute aide ou participation!
    Cdt,
    Antonin

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Cependant, depuis l´activation du trigger: je suis dans l´incapacité de faire basculer les nodes entre eux, de facon manuelle ou non. Le Cluster se casse la figure
    Qu'entends tu par se casser la figure? Quels sont les erreurs que tu rencontres? Quels events associés à cela dans le journal des événements du cluster? Dans le journal des erreurs SQL Server?
    A quoi ressemble ton trigger exactement?



    ++

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Hello Mike,

    Merci de ta réponse rapide.

    Configuration cluster "basique", Windows WFCS, un quorum (fileshare) et deux nodes. L´intégralité sous SQLS 2014 Ent.
    Se casser la figure:
    Le cluster fonctionne normalement, ainsi que lorsque j´active les triggers: RAS, les users system etant deja connectés, tout se passe bien.

    Cependant, dès que je teste de basculer manuellement le primary sur l´autre node (peu importe la direction: 1>2 ou 2>1), le basculement bloque due a la nouvelle tentative de connection.
    Idem lorsque je simule un crash d´un des deux nodes. Et si j´annule ou rétablie le node primaire, la connection entre les deux nodes ne se recréée plus (il ne parvient plus a se reconnecter).

    -------------------------------------------------------------

    les erreurs rencontrées sont les suivantes:
    WINLOG:
    >ID 1069 : Cluster resource "Random_Availability_Group_Name" of type 'SQL Server Availability Group' in clustered role "Random_Availability_Group_Name" failed.
    Based on the failure policies for the resource and role, the cluster service may try to bring the resource online on this node or move the group to another node of the cluster and then restart it.
    Check the resource and group state using Failover Cluster manager or the Get-ClusterResource Windows PowerShell Cmdlet.

    >ID 1205 : The cluster service failed to bring the clustered role "Random_Availability_Group_Name" completely online or offline.
    One or more resources may be in failed state. This may impact the availability of the clustered role.

    > et pour terminer notre ami ID 1254 : Clustered role "Random_Availability_Group_Name" has exceeded its failover threshold [...].

    SQLLOG:
    >Source Spid66 - Error 916, severity 14, State 1: The server principal "RANDOM_NT_AUTH\SYS_LOGIN" is not able to access the database "RANDOM_DB" under the current security context.

    >Source Spid49s - Error 41160, severity 16, State 0: Failed to designate the local availability replica of availability group "Random_Availability_Group_Name" as the primary replica.
    The operation encountered SQL Server error 41066 and has been terminated. Check the preceding error log for more details about the error and corrective actions.

    >Source Spid49s - Error 41066, severity 16, State 0: Cannot bring the Windows Failover Clustering (WSFC) resource (ID 'randomly_generated_ID_number') online (error code 5018).
    The WSFC service may not be running or may not be accessible in its current state.

    >Source Spid49s - Error 17892, severity 20, State 1: Logon failed for login "RANDOM_NT_AUTH\SYS_LOGIN" due to trigger execution. [Client: "<Random_Local_Client>"]

    -------------------------------------------------------------
    Le trigger a ce format là:
    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
    BEGIN
    	DECLARE @var1 NVARCHAR(15);
    	SET @var1 = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)'));
     
    	IF NOT EXISTS(SELECT [columns] FROM  Database.dbo.Table WHERE  [Column] = @var1)
    		BEGIN
    			ROLLBACK
    			INSERT INTO Database.dbo.[TableLOG] (col1) SELECT @var1
    			Print 'random failure log message'
    		END
    	ELSE
    		BEGIN
    			Print 'random successful log message'
    		END
    END
    Donc évidemment, le trigger est definitivement le problème.
    Il doit me manquer une addresse IP logique, mais je ne parviens pas à trouver laquelle.
    J´ai ajouté un insert dans mon trigger, qui ecrit en cas de Fail Logon, mais RIEN n´apparait concernant une eventuelle tentative du system.
    J´imagine bien une requete qui passe en interne d´un node a l´autre par un port, -sans IP-, et qui de fait bloque a l´execution du trigger.

    Merci d´avance pour toute idée, je bloque copieusement!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 146
    Points : 100
    Points
    100
    Par défaut
    A tout hasard, as tu essayé de mettre la VIP du listener alwayson dans la liste blanche ?
    Tu peux tester aussi avec la VIP du cluster.

  5. #5
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Ok on a pas le début du trigger mais je dirais que tu as un souci de permissions sur l'exécution de ton trigger à cause de cela.

    Source Spid66 - Error 916, severity 14, State 1: The server principal "RANDOM_NT_AUTH\SYS_LOGIN" is not able to access the database "RANDOM_DB" under the current security context.
    J'ai testé ton trigger sur mon environnement et effectivement cela fait planté le basculement dans mon cas. En y regardant de plus près, le login spécial NT AUTHORITY\SYSTEM est utilisé pendant la bascule et ce login n'avait pas le droit d'accéder ou d'insérer dans la table de log dans le contexte de sécurité du trigger pendant son exécution. Dans ce cas il suffit de forcer le contexte avec EXECUTE AS et un login qui a accès à cette fameuse table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TRIGGER TR_login_test
    ON ALL SERVER WITH EXECUTE AS 'login'

    ++

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Wonderschön!
    En effet, il s´agissait bien du contexte de sécurité, et non de l´adresse IP comme je l´imaginais.

    Je vais continuer les tests, mais à première vue tout semble rentré dans l´ordre.

    Merci pour l´aide rapide et efficace et probablement à bientôt pour de nouvelles péripeties.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger sur logon en 9i et 10G
    Par Invité dans le forum Oracle
    Réponses: 27
    Dernier message: 10/04/2008, 15h22
  2. [2005] Trigger logon possible (cf doc) mais probleme
    Par loupin dans le forum Développement
    Réponses: 1
    Dernier message: 20/11/2007, 17h14
  3. [Trigger]Equivalent de "after logon"
    Par kedare dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 06/10/2007, 00h52
  4. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  5. TRIGGER LOGON
    Par ducho dans le forum Administration
    Réponses: 12
    Dernier message: 14/03/2004, 01h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo