zoukankan      html  css  js  c++  java
  • Procedure 存储过程(转)

    无疑,Procedure是一重大课题 。。
    对于自定义Procedure,之前没有操作SQL-Server的经验 ,但是写Procedure却是比较熟手的,也是拜高老师所赐吧..
    下面是一个之前程序用过的prodecure, 里面包括传入、传出的参数设置。

    /****** Object:  Stored Procedure dbo.pro_CheckAdminLogin    Script Date: 2004-6-4 16:37:25 ******/
    CREATE PROCEDURE  pro_CheckAdminLogin 
    (
    @username nvarchar(20),
    @password char(32),
    @lastloginip char(15),
    @output int output
    )
     
    AS

    if exists(Select id from admin where username=@username and password=@password)
        
    begin
            
            
    update admin set lastLoginIP=@lastloginip,lastlogintime=getdate() where username=@username
            
    set @output=0  --验证通过
        end
    else
    begin
        
    set @output=-1  --帐号密码不正确
    end

    GO
    -----------
    //
    //Alter

    Alter procedure Pro_procedureName 
    as 
    [SQL statements]

    //Drop
    Drop procedure pro_ProcedureName

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

    Create procedure P_XXX
    with encryption
    as
    [SQL statements]
    go


    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,多半是成功注入后利用这里进行下一步权限探讨..

  • 相关阅读:
    数字音乐均衡器
    移植x264到vs2008之二
    无线连接频繁掉线,解决方法之telnet命令突破ddwrt端口最大数连接限制分析
    最新开发的消费平台开发过程 持续更新(二)
    .net 4.0 下请求验证模式变化 应对方法
    DDWRT无线参数解读
    利用 Application_Error 捕获所有异常
    location.reload() 和 location.replace()的区别和应用
    纯CSS 实现组织架构图,学习
    Syslog架设windows日志服务器
  • 原文地址:https://www.cnblogs.com/xh831213/p/326950.html
Copyright © 2011-2022 走看看