*** Procedure 存储过程 ***

无疑,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.gif Create   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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值