权限查询
我们通常对某张表进行操作时,执行前都不进行检查是否具有权限. 
 有的同志会说,数据库自己判断,是的这是没有问题的. 
          我想做的友好点,对表操作前先判断是否具有权限,如果没有权限直接就让他不能操作,而不是提交了再提示没有权限. 
          我用了这样的语句判断好象不对,请您们帮忙看看如何解决.   
 EXEC   sp_table_privileges    'bmb ', 'dbo ' 
 go 
 查询结果是    
 TABLE_QUALIFIER	TABLE_OWNER	TABLE_NAME	GRANTOR	GRANTEE	PRIVILEGE	IS_GRANTABLE 
 Czwlxt					dbo					bmb					dbo			dbo			DELETE			YES 
 Czwlxt					dbo					bmb					dbo			dbo			INSERT			YES 
 Czwlxt					dbo					bmb					dbo			dbo			REFERENCES	YES 
 Czwlxt					dbo					bmb					dbo			dbo			SELECT			YES 
 Czwlxt					dbo					bmb					dbo			dbo			UPDATE			YES   
 从查询结果可以看出,当前登录用是对表bmb有插入权限,但执行插入语句就是显示没有权限。 
 insert   into   bmb(id,parent_id,bmdm,bmmc,bmzg,bz)   select   *      from   bmb 
 执行结果如下 
 服务器:   消息   229,级别   14,状态   5,行   1 
 拒绝了对对象    'bmb '(数据库    'Czwlxt ',所有者    'dbo ')的   INSERT   权限。   
 我的问题就是我怎样查询指定表的权限,又没有某张表插入权限,怎样判断。 
------解决方案--------------------是如没该用户对该表没有任何权限就会产生异常     
 LZ 这样做会降低应用程式的效率,个人觉得不是好办法   
 看见现在很多项目都喜欢做一个权限表来控制,而不是用grant和deny控制, 
 毕竟程序的效率比较重要     
 如果LZ一定要这么做可以去看看sp_helprotect 存储过程的源码,然后自己写一个适合自己用的   
 select * from syscomments