文章主要描述的是如何得到SQL Server用户的继承列表,我们大家都知道在实际开发中特别是在做权限管理的时候,我们经常要对对某个SQL Server用户的权限进行全面检索,本文给出SQL Server中的一个实例.
用户继承树
CREATE function getUserTree(@UserName sysname, SQL Server用户名
@Seq
在实际开发中,尤其是在做权限管理的时候,常常要对对某个用户的权限进行检索,本文给出SQL Server中的一个实例.
SQL Server用户继承树
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 sy *** embers WHERE memberuid = @userId else 查找子孙 INSERT @stack SELECT memberuid, @level + 1 FROM sy *** embers 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
这种 *** ,也在MRP/ERP系统中遍历BOM时使用
上述的相关内容就是对得到SQL Server用户的继承列表 的描述,希望会给你带来一些帮助在此方面。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...
下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。 1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。 2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...
很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...
使用Windows 7的朋友都知道,任务栏上的快捷方式图标都是靠近开始菜单按钮,从左像右排列,不过也有一些用户喜欢左右对称,想要把那些快捷方式居中显示,看起来这个任务好像无从下手,其实一点也不难,只要通过下面方法就能轻松搞定。 1、首先在电脑磁盘中任何一个地方新建一个文件夹。 2、右击任务栏-&...