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.
Partager