给所有存储过程加所有人权限的一个存储过程
2004-07-29 14:09
176 查看
create procedure up_grant_all
(@objecttypes varchar(3)
)
as
declare @da_objectname varchar(30)
declare @da_objecttype varchar(30)
declare @ls_sql varchar(255)
/*
** If we're in a transaction, disallow this since it might make recovery
** impossible.
*/
if @@trancount > 0
begin
/* 17260, "Can't run %1! from within a transaction." */
raiserror 17260, "up_grant_all"
return (1)
end
if upper(@objecttypes )='ALL'
begin
declare cur_result2 cursor for
select name , type
from sysobjects
end
else
begin
declare cur_result2 cursor for
select name , type
from sysobjects
where sysobjects.type = upper(@objecttypes)
end
open cur_result2
fetch cur_result2 into @da_objectname ,@da_objecttype
while (@@sqlstatus = 0)
begin
if @da_objecttype ='U' or @da_objecttype ='V'
begin
exec ( 'grant all on ' + @da_objectname + ' to public' )
end
else if @da_objecttype ='P'
begin
exec ( 'grant execute on ' +@da_objectname +' to public' )
end
fetch cur_result2 into @da_objectname ,@da_objecttype
end
close cur_result2
deallocate cursor cur_result2
(@objecttypes varchar(3)
)
as
declare @da_objectname varchar(30)
declare @da_objecttype varchar(30)
declare @ls_sql varchar(255)
/*
** If we're in a transaction, disallow this since it might make recovery
** impossible.
*/
if @@trancount > 0
begin
/* 17260, "Can't run %1! from within a transaction." */
raiserror 17260, "up_grant_all"
return (1)
end
if upper(@objecttypes )='ALL'
begin
declare cur_result2 cursor for
select name , type
from sysobjects
end
else
begin
declare cur_result2 cursor for
select name , type
from sysobjects
where sysobjects.type = upper(@objecttypes)
end
open cur_result2
fetch cur_result2 into @da_objectname ,@da_objecttype
while (@@sqlstatus = 0)
begin
if @da_objecttype ='U' or @da_objecttype ='V'
begin
exec ( 'grant all on ' + @da_objectname + ' to public' )
end
else if @da_objecttype ='P'
begin
exec ( 'grant execute on ' +@da_objectname +' to public' )
end
fetch cur_result2 into @da_objectname ,@da_objecttype
end
close cur_result2
deallocate cursor cur_result2
相关文章推荐
- 存储过程:把所有表名连接到一个单一字符串的存储过程
- 一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
- 一个查询数据库中所有表的空间占用情况的存储过程
- 无限极分类mysql存储过程编写实现调用时给定一个id,返回其所有父级与子级并排序
- 写了一个针对一个的所有表进行的存储过程!可以方便的清空数据库!
- 存储过程有输出参数,在c#中用nhibernate调用存储过程时,如何才能获取到一个结果集和这个输出参数呢?
- 得用SQL语句生成某个库下所有存储过程脚本,并每个存为一个文件
- SQL : 如何完全复制一个服务器上的数据库A到另一个服务器上的数据库B(包括库A的所有表、试图、存储过程等等)
- mysql存储过程之一个简单的存储过程
- 一个MySQL清除数据库所有表数据保留表结构的存储过程
- 转:获取一个表内的依赖的所有存储过程
- 在一个存储过程中调用返回一个游标的另一个存储过程
- 这是oracle包实体里面的一个存储过程 oracle存储过程中的if...elseif...else用法
- 根据存储过程包含某个关键字,查找相关所有存储过程信息及根据多个主键删除重复列
- 在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名
- 一个用于返回所有存储过程及其参数的T-SQL
- ORACLE导出一个用户下的所有存储过程
- 13.0 Mybatis_扩展_存储过程_oracle中创建一个带游标的存储过程
- 存储过程内建临时表和临时函数,合并一个由存储过程返回的表