Sybase - La FAQConsultez toutes les FAQ
Nombre d'auteurs : 1, nombre de questions : 77, dernière mise à jour : 8 février 2009 Ajouter une question
Question / réponses à tout ce que vous avez toujours voulu savoir sur Sybase ASE et ses dérivés sans jamais oser le demander
- Je n'arrive pas à me connecter à une base de données de mon serveur depuis un programme client
- Comment connaître le nom de l'utilisateur connecté au serveur?
- Afficher la liste des utilisateurs d'une base spécifique ou de la base courante.
- Comment extirper un DDL complet pour un utilisateur donné ?
- Comment se connecter à un serveur se trouvant derrière un pare-feu?
- Comment changer temporairement un mot de passe que l'on ne connaît pas ?
- Comment connaître la dernière date de modification du mot de passe des logins ?
- Comment connaîte le jeu de caractère et le tri configuré sur son serveur ?
- Je n'arrive pas à créer un utilisateur,le système me dit : user already exists ?
- Est-il possible de se connecter à Sybase ASE en identification Windows ?
Si vous n'arrivez pas à vous connecter à une base de données de votre serveur, procédez comme ci-dessous.
- Assurez-vous que l'Open Client Sybase a bien été installé sur votre poste
- Vérifiez vos variables d'environnement SYBASE, SYBASE_OCS et PATH (qui doit pointer sous SYBASE_OCS\bin) soient bien configurées
- vérifiez que votre fichier de configuration (%SYBASE%\ini\sql.ini sous Windows, $SYBASE\ini\interfaces sous Unix) comporte bien le nom et les paramètres corrects
- 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.
- Testez une connexion via isql, ce qui aura le mérite de vous retourner une code erreur "clair":
Code : | Sélectionner tout |
1 2 | isql -U VotreLogin -P VotreMotDePasse -S VotreServeurSybase |
Code sql : | Sélectionner tout |
1 2 3 4 | SELECT user_name() AS 'Utilisateur de la base', suser_name() AS Login, @@spid as 'No de connexion' |
Code sql : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | use master select d.name as 'Base de donnée courante', case when fid=spid then 'Processus maître' else 'processus escalve' end as 'Processus' p.cmd as 'commande en cours', p.program_name as 'Programme', p.clienthostname as 'Provenance de connexion' from sysprocesses p inner join sysdatabases d on d.dbid=p.dbid where spid=@@spid |
Code SQL : | Sélectionner tout |
1 2 3 4 | select spid, loginame Utilisateur , cmd, program_name from master..sysprocesses where dbid = db_id(@db) and status <> 'BACKGROUND' |
Code : | 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | Create PROC sp_ddluser (@login varchar(30)) as BEGIN /* Auteur : Fabien Celaia * Date : 6.6.05 * Desc : Extraction du DDL d'un utilisateur spécifique permettant sa recréation multi-serveurs * IParm : @login (obligatoire) : l'utilisateur à extraire * OParm : 0 = succès * -1 = l'utilisateur n'existe pas */ if not exists (select * from sysusers where name = @login) begin PRINT 'L''utilisateur '+@login+'n''existe pas dans la base '+db_name()+' du serveur '+@@servername return -1 end if not exists (select * from master..syslogins where name = @login) begin /* Login inexistant => création */ select 'exec sp_addlogin '+ @login+ ', MotDePasse' end if exists (select * from sysalternates where suid=suid(@login)) /* C'est un alias */ begin SELECT 'EXEC SP_DROPALIAS '+@login SELECT 'EXEC SP_ADDALIAS '+@login+', '+ suser_name(altsuid) FROM SYSALTERNATES WHERE suid=suid(@login) end else /* C'est un utilisateur */ begin SELECT 'EXEC SP_DROPUSER '+@login SELECT 'EXEC SP_ADDUSER '+@login+', '+ @login end /* membres de groupes */ select 'GRANT ROLE '+ g.name +' TO '''+u.name+'''' from sysmembers m inner join sysusers u on m.memberuid = u.uid inner join sysusers g on m.groupuid=g.uid where u.uid > 2 and u.name = @login /*Droits*/ select case p.protecttype when 206 then 'REVOKE' else 'GRANT ' end + case p.action when 26 then 'REFERENCES' when 178 then 'CREATE FUNCTION' when 193 then 'SELECT' when 195 then 'INSERT' when 196 then 'DELETE' when 197 then 'UPDATE' when 198 then 'CREATE TABLE' when 203 then 'CREATE DATABASE' when 207 then 'CREATE VIEW' when 222 then 'CREATE PROCEDURE' when 224 then 'EXECUTE' when 228 then 'BACKUP DATABASE' when 233 then 'CREATE DEFAULT' when 235 then 'BACKUP LOG' when 236 then 'CREATE RULE' end + ' ON ' + o.name + case when p.action < 200 then case when p.protecttype = 206 then ' FROM ' else ' TO ' END +u.name else '' end + case when p.protecttype = 204 then ' WITH GRANT OPTION' else '' end from sysprotects p inner join sysusers u on u.uid=p.uid inner join sysobjects o on o.id=p.id where p.columns = 0x01 OR p.columns is null and u.name = @login order by o.name end |
Checkez le port utilisé par le serveur Sybase (par défaut, le 5000):
- Sous Windows, dans le fichier %SYBASE%\ini\sql.ini
- Sous Unix, dans le fichier %SYBASE%/interfaces
puis demandez à votre administrateur réseau de libérer le trafic de ce port sur son firewall
Se référer à cet article.
Code SQL : | Sélectionner tout |
1 2 3 4 | select name loginname, pwdate from master..syslogins where loginname is not null |
Code SQL : | Sélectionner tout |
1 2 | sp_helpsort |
Il faut supprimer l'utilisateur et le recréer. Il se peut que cet utilisateur soit en fait un alias:
Code SQL : | Sélectionner tout |
1 2 3 4 | exec sp_dropuser 'utilisateur' -- Suppression de l'utisateur exec sp_dropalias 'utilisateur' -- Suppression d'un éventuel alias exec sp_adduser 'utilisateur' {,'login'} -- recrée utilisateur et l'associer, au besoin, à login |
Oui, mais ce n'est pas simple et limité à certaines conditions:
- ASE doit fonctionner sous Windows
- Seul le protocole named pipe est couvert (donc pas TCP/IP)
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.