文章主要描述的是如何得到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用户的继承列表 的描述,希望会给你带来一些帮助在此方面。
在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
问题现象,具体如下所示: 故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。 解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...
下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。 1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。 2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...
很多朋友从XP升级迈入了Windows 7的殿堂,却发现,Windows 7确实好用和华丽,可是有一些地方不太适应。今天举出一则例子,是把Windows 7系统下的宋体替换为XP系统下的字体。这个并非无聊,大家去网上搜索下,就知道有多少人想要这么做了。 没办法,每人的需求总是那么的不同,好吧,怀旧...
使用Windows 7的朋友都知道,任务栏上的快捷方式图标都是靠近开始菜单按钮,从左像右排列,不过也有一些用户喜欢左右对称,想要把那些快捷方式居中显示,看起来这个任务好像无从下手,其实一点也不难,只要通过下面方法就能轻松搞定。 1、首先在电脑磁盘中任何一个地方新建一个文件夹。 2、右击任务栏-&...