Précédent   Forum des professionnels en informatique > Bases de données > Sybase > Adaptive Server Enterprise
Adaptive Server Enterprise Forum d'entraide concernant Sybase Adaptive Server Enterprise, le dataserver phare de Sybase
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/03/2007, 16h51   #1
Membre régulier
 
Homme dieudonné madishon ngaya
Administrateur de base de données
Inscription : août 2003
Messages : 148
Détails du profil
Informations personnelles :
Nom : Homme dieudonné madishon ngaya
Âge : 48
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : août 2003
Messages : 148
Points : 89
Points : 89
Par défaut [ASE 12.5.0.3 ] génération de ddl

Bonjour,
J'ai recupéré ce bout de code de fadace sur les f.A.Q sybase afin de generer les ddl des privilèges pour un utilisateur d'une base de donnée mais le script s'execute bien mais il me renvoie tous les resultats de tous les utilisateurs. comment faire pour avoir que ceux de mon utilisateur ?
voici ci-dessous le script:

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 ='username'
order by o.name
go




Merci beaucoup.
dngaya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2007, 07h54   #2
Rédacteur/Modérateur
 
Inscription : janvier 2006
Messages : 1 301
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : janvier 2006
Messages : 1 301
Points : 1 505
Points : 1 505
Envoyer un message via AIM à mpeppler
Il faut ajouter des parenthèses pour la clause OR:

Code :
1
2
3
4
5
6
7
 
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 ='utilisateur'
ORDER BY o.name
Michael
__________________
Michael Peppler
Membre de TeamSybase - www.teamsybase.com

"A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson
mpeppler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web