1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| CREATE PROCEDURE [dbo].[ps_sel_col_modif]
@identite sysname,
@table sysname
as
select sysobjects.name, syscolumns.name, sysusers.name, sysprotects.columns
,cast(reverse(cast( sysprotects.columns as varchar)) as varbinary)
,sysprotects.protecttype, sysprotects.action
from sysprotects, sysobjects, sysusers, syscolumns
where sysprotects.id = sysobjects.id
and syscolumns.id=sysobjects.id
and sysobjects.type='U'
and sysobjects.name=@table
and sysusers.name=@identite
and sysprotects.action = 197
and sysusers.uid=sysprotects.uid
-- sélection des colonnes concernées par l'autorisation
--l'autorisation concerne toute la table
and (sysprotects.columns=0x01 or
-- le champ concerné est autorisé
( Convert(int,cast(reverse(cast( sysprotects.columns as varchar)) as varbinary)) & Power(2, syscolumns.colid)=Power(2,syscolumns.colid)))
and sysprotects.protecttype=205
order by sysobjects.name, sysusers.name,syscolumns.name
; |
Partager