赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

做权限管理时对某个用户的权限进行检索

发布时间:2007.09.07 05:02     来源:赛迪网    作者:ssh

做权限管理的时候,对某个用户的权限进行检索。

--用户继承树

CREATE function getUserTree(@UserName sysname, --用户名
  @Seq bit   --查找方式:0查找子孙 1.查找祖先
  )
  returns @Result table(UserID sysname,UserName sysname,Level int)
  as
  begin
  declare @UserId sysname
  set @userId=user_id(@userName)
  
  if @userid is null
  begin
  --raiserror('指定的用户名不存在',16,1)
  return
  end
  
  DECLARE @level int, @line char(20)
  declare @stack table(item sysname, level int)
  INSERT INTO @stack VALUES (@UserID, 1)
  SELECT @level = 1
  
  WHILE @level > 0
  BEGIN
  IF EXISTS (SELECT * FROM @stack WHERE level = @level)
  BEGIN
  SELECT @userId = item
  FROM @stack
  WHERE level = @level
  insert into @Result values(@UserId,User_name(@userID),@level)
  
  DELETE FROM @stack
  WHERE level = @level
  AND item = @userId
  
  if @Seq=1 --查找祖先
  INSERT @stack
  SELECT groupuid, @level + 1
  FROM sysmembers
  WHERE memberuid = @userId
  else --查找子孙
  INSERT @stack
  SELECT memberuid, @level + 1
  FROM sysmembers
  WHERE groupuid = @userId
  
  IF @@ROWCOUNT > 0
  SELECT @level = @level + 1
  END
  ELSE
  SELECT @level = @level - 1
  END -- WHILE
  
  return
  end
  

实例:

  exec sp_addrole 'Users'
  exec sp_addrole 'BusinessMan'
  exec sp_addrolemember 'Users','BusinessMan'
  exec sp_addrole 'Saler'
  exec sp_addrolemember 'BusinessMan','Saler'
  
  exec sp_addlogin 'OrderMan','OrderMan','lifeng'
  exec sp_addrolemember 'Saler','OrderMan'
  exec sp_grantdbaccess 'OrderMan','OrderMan'
  select * from getUserTree('OrderMan',1)

结果显示:

UserID  USRENAME   Level
5   OrderMan     1
16402   Saler     2
16401   BusinessMan   3
16403   Users     4

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 全球移动和固定电话用户的总数已近40亿 (09-05) · 固定电话用户数量增长放缓 7月净增6万户 (09-05)
· 求职网链接被黑 美政府求职网用户数据被盗 (09-01) · 欧洲IPTV用户达620万 业务种类居全球首位 (08-31)
· 用户拖欠信息费运营商无权采取停拆机处理 (08-30) · 近90%用户对互联网婚恋服务收费不排斥 (08-28)
· 尊重小区宽带用户选择权不能成一句空话 (08-27) · 搜狐替用户定制免费铃声 侵犯用户姓名权 (08-23)
· 贪图便宜 用户购买劣质手机电池炸伤大腿 (08-22) · Skype受损用户获赠30分钟国内通话时长 (08-22)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管