‘壹’ 在sql SERVER 2005中如何给某个用户分配执行存储过程的权限
打开 management studio,选择要操作的数据库-->安全性-->用户,选择用户,右击,属性-->安全类型->添加权限-->特定类型的所有对象,选择 存储过程,点击确认后,分配可以分配的 权限,有 control\alter\exeute etc.。之前要创建好用户,并给予登录的权限。
‘贰’ sql 存储过程查询语句
在数据库中先创建存储过程!具体代码如下:
create proc sp_GetTesttableByname --sp_GetTesttableByname代表存储过程名称
as
begin
SELECT nickname,email FROM testtable WHERE name='张三' --存数过程的查询语句
end
go
exec sp_GetTesttableByname; --查询存储过程结果
按下F5执行以上代码之后 然后再在项目中写调用存储过程语句!希望我的回答对你有所帮助,谢谢采纳!
‘叁’ SQL语句中存储过程和调用
这样写吧,最好是搞模糊查询,不要搞你那样的精确查询。
create proc Get_Stu_Search
@name varchar(100),
@tel varchar(100)
as
begin
declare @sql varchar(3000)
set @sql='select * from stu where 1=1'
if len(@name)>0
begin
set @sql=@sql+' and [name] like ''%'+@name+'%'''
end
if len(@tel)>0
begin
set @sql=@sql+' and tel like ''%'+@tel+'%'''
end
exec(@sql)
end
--调用方法:打引号的是两个参数,知道吧
-- Get_Stu_Search 'aa','120'
‘肆’ 在SQL中存储过程的一般语法是什么
1、 创建语法
createproc|procerepro_name
[{@参数数据类型}[=默认值][output],
{@参数数据类型}[=默认值][output],
....
]
as
SQL_statements
2、 创建不带参数存储过程
--创建存储过程
if(exists(select*fromsys.objectswherename='proc_get_student'))
dropprocproc_get_student
go
createprocproc_get_student
as
select*fromstudent;
--调用、执行存储过程
execproc_get_student;
3、 修改存储过程
--修改存储过程
alterprocproc_get_student
as
select*fromstudent;
4、 带参存储过程
--带参存储过程
if(object_id('proc_find_stu','P')isnotnull)
dropprocproc_find_stu
go
createprocproc_find_stu(@startIdint,@endIdint)
as
select*fromstudentwhereidbetween@startIdand@endId
go
execproc_find_stu2,4;
5、 带通配符参数存储过程
--带通配符参数存储过程
if(object_id('proc_findStudentByName','P')isnotnull)
dropprocproc_findStudentByName
go
createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')
as
select*fromstudentwherenamelike@nameandnamelike@nextName;
go
execproc_findStudentByName;execproc_findStudentByName'%o%','t%';
(4)sql存储过程授权语句扩展阅读:
SQL存储过程优点:
1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
‘伍’ 存储过程和sql语句的优缺点优点有哪些
存储过程是一组予编译的SQL语句
它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。
2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。
‘陆’ 如何修改mysql 存储过程权限
方法如下:
修改mysql 存储过程的definer
修改mysql.proc表 的definer字段
update mysql.proc set definer='root@%' where db='servant_591up'; UPDATE `mysql`.`proc` SET `definer`='root00@%' WHERE `db`='test' AND `name`='jjjj' AND `type`='PROCEDURE'; UPDATE `mysql`.`proc` SET `definer`='wtc_678869@%' WHERE `db`='servant_591up' AND `type`='PROCEDURE';
2.修改sql security
ALTER PROCEDURE www SQL SECURITY INVOKER ; ALTER PROCEDURE www SQL SECURITY DEFINER ;
(1)MySQL存储过程是通过指定SQL SECURITY子句指定执行存储过程的实际用户;
(2)如果SQL SECURITY子句指定为DEFINER,存储过程将使用存储过程的DEFINER执行存储过程,验证调用存储过程的用户是否具有存储过程的execute权限和DEFINER用户是否具有存储过程引用的相关对象的权限;
(3)如果SQL SECURITY子句指定为INVOKER,那么MySQL将使用当前调用存储过程的用户执行此过程,并验证用户是否具有存储过程的execute权限和存储过程引用的相关对象的权限;
(4)如果不显示的指定SQL SECURITY子句,MySQL默认将以DEFINER执行存储过程。
3.执行存储过程授权
GRANT EXECUTE ON test.* TO 'wtc'@'%'; GRANT CREATE ROUTINE,ALTER ROUTINE, SELECT,CREATE, INSERT, UPDATE, DELETE, EXECUTE ON test.* TO 'wtc'@'%' IDENTIFIED BY '111111'
CREATE ROUTINE : 创建存储过程的权限
ALTER ROUTINE : 修改存储过程的权限
4.删除用户
REVOKE all ON test.* FROM wtc@'%'
DELETE FROM user WHERE User='user_name' and Host='host_name';
FLUSH PRIVILEGES;
好文要顶关注我
‘柒’ 查看存储过程内容的权限怎么给
如题,我在自己的机器上建立了2个用户,其中在A用户中,我创建了一些存储过程,现在我使销让胡用B用户登录Oracle,想看看A用亏拦户创建的存储过程,我查了查授权的语句,没发现有授权查看存滑宴储过程的SQL,请帮忙? SQL> conn wp/wp已连接。
SQL> grant select ,execute on p_test to yp;
grant select ,execute on p_test to yp*第1 行出现错误:
ORA-02225: 只有 EXECUTE 和 DEBUG 权限对过程有效 select b.line,b.text from user_objects a,user_source b where a.object_type = 'PROCEDURE' and a.object_name='你的存储过程名字。' and a.object_name=b.name order by line;
‘捌’ 用sql写一个简单的存储过程语句
insert into 表名 (字段1,字段2,....)values('"字段1的值"','"&字段2的&"',...)
上述为ASP中增加数据的SQL方法
‘玖’ sql 存储过程语句编写
要到达你的要求,在存储过程中必须使用动态SQL语句。
一个简化的例子:
createprocereMyDynamicSQL
@tblwherenvarchar(200)--a==aora==xxx
as
begin
declare@sqlnvarchar(max)
--动态拼接sql语句
set@sql=N'select*from[表一]where'+@tblwhere
--执行
executesp_executesql@sql
end
‘拾’ 使用SQL语句创建存储过程
使用SQL语句创建存储的具体过程如下:
1、首先,打开企业管理器,选择【工具】-【查询分析器】: