转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
如何获得SQL SERVER2000数据库指定对象的权限列表?         

如何获得SQL SERVER2000数据库指定对象的权限列表?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4169 更新时间:2007/11/14 11:06:07
''''0''''
           end as [Action],
    user_name(a.grantor) as Grantor
  from sysprotects a inner join sysusers b on a.uid=b.uid
  where exists (select 1 from  sysobjects
         where [name]=object_name(a.id) and xtype <>''''S'''' )
  and [id]=object_id(@objectname)
  order by object_name(a.id)

  select @rowcount=@@rowcount
  if @rowcount=0
   begin
    select @rc=-6
    print @objectname+'''' have not grant authorization to any user''''
    return @rc
   end
  end
end
/***************************************************************************
*****/
/*  Judge the input parameters ,if @objectname is not null  and @username is
not null */
/*  then return one objects authorization by one user    */
/***************************************************************************
*****/
if @rc=0 and @objectname is not null and @username is not null
begin
 if not exists(select * from sysobjects where [id]=object_id(@objectname)
and xtype<>''''S'''')
 begin
  select @rc=-7
  print ''''The object name  is not include in sysobjects table.''''
  return @rc
 end

 if not exists(select * from sysusers where [uid]=user_id(@username) and
status<>0)
 begin
  select @rc=-8
  print ''''The user name is not include in sysusers table.''''
  return @rc
 end

 if exists(select 1 from sysmembers where [memberuid]=user_id(@username))
 begin
  select  object_name(a.id) as objectname,
   user_name(a.uid) as usename,
   case b.issqlrole when 1 then ''''Group ''''
      else ''''User''''
   end as Role,
   case a.protecttype when 205 then ''''Grant''''
      when 204 then ''''Grant''''
      when 206 then ''''Deny''''
      else ''''Revoke''''
   end as ProtectType,
   case a.[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''''
                      else ''''0''''
           end as [Action],
    user_name(a.grantor) as Grantor
  from sysprotects a inner join sysusers b on a.uid=b.uid
  where exists (select 1 from  sysobjects
         where [name]=object_name(a.[id]) and xtype <>''''S'''' )
  and (exists (select 1 from sysmembers
    where groupuid=a.uid and memberuid=user_id(@username))
  or a.uid=user_id(@username))
  and [id]=object_id(@objectname)
  order by object_name(a.id)

  select @rowcount=@@rowcount
  if @rowcount=0
   begin
    select @rc=-9
    print @username+'''' have not any objects authorization.''''
    return @rc
   end
 end
 else
 begin
  select  object_name(a.id) as objectname,
   user_name(a.uid) as usename,
   case b.issqlrole when 1 then ''''Group ''''
      else ''''User''''
   end as Role,
   case a.protecttype when 205 then ''''Grant''''
      when 204 then ''''Grant''''
      when 206 then ''''Deny''''
      else ''''Revoke''''
   end as ProtectType,
   case a.[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''''
                      else ''''0''''
           end as [Action],
    user_name(a.grantor) as Grantor
  from sysprotects a inner join sysusers b on a.uid=b.uid
  where exists (select

上一页  [1] [2] [3] [4]  下一页


[精彩网文]世界首富比尔·盖茨是如何获得成功的  [聊天工具]企业邮件系统的利器----FoxMail Server
[系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜  [系统软件]关于Windows2000Server的灾难恢复
[常用软件][网络]下载服务革命性风暴Poco Server评测  [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…
[C语言系列]SQL Server到DB2连接服务器的实现  [C语言系列]SQL Server到SYBASE连接服务器的实现
[C语言系列]SQL Server到SQLBASE连接服务器的实现  [C语言系列]SQL Server连接VFP数据库的实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台