代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
配置权限(存储过程)
作者:
zhaowenzhong
/ 发布于
2013/3/26
/
1093
这里只将我最近给用户授予存储过程对应的权限(查看定义、执行、修改) 写了出来。其他的可以根据需要略做修改就可以了。
-- ============================================= -- Author: 赵文忠 -- Create date: 20120507 -- Description: 给用户授予存储过程对应的权限(查看定义、执行、修改) CREATE procedure grant_purview_procedure_for_user @db_name sysname, @sys_user sysname, @view_definition bit=1,---查看定义 @execute bit=1,---执行 @alter bit=0--修改 as begin set nocount on declare @sql_definition varchar(2000) declare @sql_execute varchar(2000) declare @sql_alter varchar(2000) declare @use_db varchar(1200) set @use_db='USE '+@db_name+CHAR(13)+CHAR(10)+' ' declare @i int,@count int declare @str_sys nvarchar(1200) declare @STR nvarchar(1200) SET @STR=N'select @count1 =COUNT (1) from '+@db_name+'.sys.sysobjects where type=''P''' exec sp_executesql @STR,N'@count1 int output',@count1=@count output set @i=1 declare @name sysname while @i<=@count begin set @sql_definition='GRANT VIEW DEFINITION ON '+@db_name+'.dbo.' set @sql_execute='GRANT EXECUTE ON '+@db_name+'.dbo.' set @sql_alter='GRANT ALTER ON '+@db_name+'.dbo.' set @str_sys=N'select @name1 =name from (select row_number() over(order by name)rn,name from '+@db_name+'.sys.sysobjects where type=''P'')tmp wherern=@ii ' exec sp_executesql @str_sys,N'@name1 nvarchar(256) output,@ii int',@ii=@i,@name1=@name output if @view_definition=1 and @execute=1 and @alter=1 begin SET @sql_definition=@use_db+@sql_definition+@name+' TO '+@sys_user---查看 SET @sql_execute=@use_db+@sql_execute+@name+' TO '+@sys_user ---执行 SET @sql_alter=@use_db+@sql_alter+@name+' TO '+@sys_user---修改 EXEC (@sql_definition) EXEC (@sql_execute) EXEC (@sql_alter) end if @view_definition=1 and @execute=0 and @alter=0 begin SET @sql_definition=@use_db+@sql_definition+@name+' TO '+@sys_user---查看 EXEC (@sql_definition) end if @view_definition=0 and @execute=1 and @alter=0 begin SET @sql_execute=@use_db+@sql_execute+@name+' TO '+@sys_user ---执行 EXEC (@sql_execute) end if @view_definition=0 and @execute=0 and @alter=1 begin SET @sql_alter=@use_db+@sql_alter+@name+' TO '+@sys_user---修改 EXEC (@sql_alter) end if @view_definition=1 and @execute=1 and @alter=0 begin SET @sql_definition=@use_db+@sql_definition+@name+' TO '+@sys_user---查看 SET @sql_execute=@use_db+@sql_execute+@name+' TO '+@sys_user ---执行 EXEC (@sql_definition) EXEC (@sql_execute) end if @view_definition=1 and @execute=0 and @alter=1 begin SET @sql_definition=@use_db+@sql_definition+@name+' TO '+@sys_user---查看 SET @sql_alter=@use_db+@sql_alter+@name+' TO '+@sys_user---修改 EXEC (@sql_definition) EXEC (@sql_alter) end if @view_definition=0 and @execute=1 and @alter=1 begin SET @sql_execute=@use_db+@sql_execute+@name+' TO '+@sys_user ---执行 SET @sql_alter=@use_db+@sql_alter+@name+' TO '+@sys_user---修改 EXEC (@sql_execute) EXEC (@sql_alter) end set @i+=1 end set nocount off end
试试其它关键字
配置权限
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
zhaowenzhong
贡献的其它代码
(
7
)
.
多行变一行
.
最大连续出现的次数
.
修复 数据库或表或索引 逻辑错误提示 问题
.
批量执行SQL 语句
.
配置权限(存储过程)
.
批量修改DB中字段类型
.
定位 占用CPU最多 SQL
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3