日期:2014-05-17  浏览次数:20609 次

SQL2005中的权限查询问题
SQL2005中怎么用SQL语句或者存储过程查询到某个用户名对某数据库中的某表中的某字段的增删改查及其他的所有权限? 
------解决方案--------------------
给你一个例子:


--1.创建登陆
create login wcc
with password = '123'


--2.模拟登陆wcc
execute as login='wcc'


--3.查询权限,发现没有任何权限
select *  
from sys.fn_my_permissions('spgj_yjm',--安全对象的名称  
                           'object')    --要列出权限的安全对象类 
where subentity_name <>''
go


--4.回到当前的登录名,也就是sa用户
revert
go

--5.返回了对表spgj_yjm的各个列的权限
select *  
from sys.fn_my_permissions('spgj_yjm',--安全对象的名称  
                           'object')    --要列出权限的安全对象类 
where subentity_name <>''
/*
entity_name subentity_name permission_name
spgj_yjm ydh SELECT
spgj_yjm yjm SELECT
spgj_yjm flag SELECT
spgj_yjm ydh UPDATE
spgj_yjm yjm UPDATE
spgj_yjm flag UPDATE
spgj_yjm ydh REFERENCES
spgj_yjm yjm REFERENCES
spgj_yjm flag REFERENCES
*/