SQL Server - La FAQConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 119, dernière mise à jour : 31 mai 2011 Ajouter une question
Question / réponses à tout ce que vous avez toujours voulu savoir sur Microsoft SQL Server sans jamais oser le demander
- Comment fixer la durée d'attente de libération d'un verrou sur un object de la base de données ?
- Je n'arrive pas à me connecter à une base de données de mon serveur depuis un programme client
- Comment se connecter à un serveur SQL qui se trouve derrière un proxy ?
- Comment se connecter à un serveur se trouvant derrière un pare-feu ?
- Quelle procédure stockée permet de limiter le nombre de connexions simultanées ?
- Mon serveur ne démarre pas à cause du méssage : Echec d'ouverture d'une session a empêché le démarrage d'un service.
- Comment connaître le type d'authentification installée sur le serveur ?
- Comment résoudre le problème "Délai d'attente expiré" lorsqu'on tente de se connecter au serveur ?
- Déconnectez les utilisateurs d'une base de données
- Comment démarrer un serveur si la base tempdb est corrompue
SET LOCK_TIMEOUT permet à une application de définir le délai maximal pendant lequel
une instruction doit attendre en cas de ressource bloquée. Si l'attente d'une instruction
dépasse la valeur du paramètre LOCK_TIMEOUT, l'instruction bloquée est automatiquement
annulée, et un message d'erreur renvoyé à l'application.
Cette valeur est fixée à -1 au début d'une connexion.
Code tsql : | Sélectionner tout |
1 2 | --Fixe la valeur du lock_timeout à 1,8 seconde SET LOCK_TIMEOUT 1800 |
Code tsql : | Sélectionner tout |
1 2 | --Consulter la valeur du lock timeout SELECT @@LOCK_TIMEOUT AS LOCK_TIMEOUT |
Si vous n'arrivez pas à vous connecter à une base de données de votre serveur, procedez comme ci-dessous.
- Si vous utilisez le nom de la machine comme source de données, vérifiez que votre réseau
possède un serveur de nom de domaine.
Dans le cas contraire, utilisez l'adresse IP publique de votre serveur de base de données. - Attention, il arrive que vous vous connectez sous windows avec un utilisateur qu possède moins de droits
pour modifier les données de la base de données de ce serveur. - Vérifiez que vous utilisez le bon type d'autentification SQL Serveur pour votre chaîne de connexion
- Vérifiez que votre serveur ne se trouve pas derrière un serveur proxy.
- Vérifier que votre serveur ne se trouve pas derrière un Firewall.
Pour se connecter à un serveur SQL Serveur qui tourne derrière un serveur proxy,
Ouvrez l'utilitaire Server Network Utility
Dans l'onglet général, cochez la case enable Winsock proxy
puis saisissez l'adresse du serveur proxy et son port d'écoute.
Pour se connecter à un serveur dans ces conditions, Configurez un numero de port (1433) par défaut puis demandez à votre administrateur réseau de libérer le trafique de ce port sur son firewall
il est déconseillé d'ouvrir une brèche dans le firewall si MS-SQL utilise le port par défaut. reconfigurer le port avant tout.
Code tsql : | Sélectionner tout |
1 2 3 | sp_configure connections, n RECONFIGURE WITH OVERRIDE --n est le nombre de connexions souhaitées. |
Ce méssage intervient lorsque le compte configuré pour démarrer le service MSSQLSERVER échoue dans le démarrage d'une session Windows. Allez-y dans le Gestionnaire des Services, Cliquez sur le service MSSQLSERVER, puis changer le compte de démarrage du service. NB: Il est plus simple d'utiliser le compte LocalSystem.
Code tsql : | Sélectionner tout |
1 2 3 4 5 | select CASE WHEN convert(sysname, serverproperty('Edition')) IS NULL THEN 'ERREUR' WHEN convert(sysname, serverproperty('Edition'))=0 THEN 'SECURITE INTEGREE' WHEN convert(sysname, serverproperty('Edition'))=1 THEN 'SECURITE NON INTEGREE' END AS AUTHENTIFICATION |
Il s'agit d'un problème lié au DNS
- Utiliser l'adresse IP\Instance du serveur à la place de NomServeur\Instance
- Dans la fenêtre de configuration IP du protocole TCP/IP de votre carte réseau, ajouter l'adresse du DNS primaire, en utilisant celui de votre contôleur de domaine.
Cette commande, possible depuis MS-SQL2005, tue les connexions en cours (y.c. rollback) et garde l'unique connexion en cours sur la base.
Code tsql : | Sélectionner tout |
ALTER DATABASE 'MaBase' SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Code tsql : | Sélectionner tout |
ALTER DATABASE 'MaBase' SET MULTI_USER
Code tsql : | Sélectionner tout |
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 | CREATE PROC sp_killuser (@MaBase varchar(30)=NULL) AS BEGIN Declare @SQL_Text nvarchar(20) declare Process_cur CURSOR FOR select convert(varchar(5), spid) from master..sysprocesses where dbid = db_id(coalesce(@MaBase,db_name()) and spid <> @@spid Declare @spid as varchar(4) OPEN Process_cur FETCH NEXT FROM Process_cur INTO @spid WHILE (@@FETCH_STATUS = 0) begin set @SQL_Text = 'KILL '+ @spid exec sp_executesql @T FETCH NEXT FROM Process_cur into @spid; end CLOSE Process_cur DEALLOCATE Process_cur END GO |
Démarrez le serveur avec l'option -T3608.
Ce traceflag permet de ne démarrer le serveur qu'avec la base master. Notez cependant que sans la base tempdb, quasiment aucune procédure stockée n'est utilisable.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.