*** Procedure 存储过程 ***

本文详细介绍了SQL Server中存储过程(procedure)的概念及应用,包括创建、修改、删除存储过程的方法,以及如何利用存储过程提高系统的安全性与运行效率。文章还提供了具体的存储过程示例,并讲解了加密存储过程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无疑,Procedure是一重大课题 。。
对于自定义Procedure,之前没有操作SQL-Server的经验 ,但是写Procedure却是比较熟手的,也是拜高老师所赐吧..
下面是一个之前程序用过的prodecure, 里面包括传入、传出的参数设置。
None.gif
ExpandedBlockStart.gifContractedBlock.gif
/**//****** Object:  Stored Procedure dbo.pro_CheckAdminLogin    Script Date: 2004-6-4 16:37:25 ******/
None.gif
CREATE PROCEDURE  pro_CheckAdminLogin 
None.gif(
None.gif
@username nvarchar(20),
None.gif
@password char(32),
None.gif
@lastloginip char(15),
None.gif
@output int output
None.gif)
None.gif 
AS
None.gif
None.gif
if exists(Select id from admin where username=@username and password=@password)
None.gif    
begin
None.gif        
None.gif        
update admin set lastLoginIP=@lastloginip,lastlogintime=getdate() where username=@username
None.gif        
set @output=0  --验证通过
None.gif
    end
None.gif
else
None.gif
begin
None.gif    
set @output=-1  --帐号密码不正确
None.gif
end
None.gif
None.gif
GO
None.gif
-----------
None.gif
//
None.gif
//Alter
None.gif
None.gif
Alter procedure Pro_procedureName 
None.gif
as 
None.gif
[SQL statements]
None.gif
None.gif
//Drop
None.gif
Drop procedure pro_ProcedureName

通过阅读,了解到MS-SQLserver 的procedure 是可以加密的

None.gifCreate procedure P_XXX
None.gif
with encryption
None.gif
as
None.gif
[SQL statements]
None.gif
go
None.gif


Procedure的好处:
系统有预编译 即编译1次,大大提高效益
某些业务规则可在procedure里面完成, 方便修改(不需改源前后台程序)
当然,还有我才知道的加密--安全性提高 Encryption

SQL-server还提供系统Procedure(sp_)和扩展Procedure(xp_)

利用系统存储过程新添用户的例子:


EXEC sp_addlogin 'LALA_ConnectName','PWD','DB_Name'
go

----

相对也明白了,具有SA权限后 利用扩展Procedure可以操作windows命令行解释器,

Use Master [<--Master数据库是 SQL-server存放系统procedure的数据库]
go
EXEC xp_cmdShell 'dir C:\*.exe'

这个XP_CmdShell就是在SQLserver系统执行命令行的方法

估计前段时间Hack最多的SQL injected,多半是成功注入后利用这里进行下一步权限探讨..

大概的 , Procedure掌握的就这些 需要反复练习 :)

转载于:https://www.cnblogs.com/szRoyman/archive/2006/01/10/314234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值