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

  • 相关阅读:
    产生唯一随机码的方法分析。
    给新人的建议:浅谈需求分析的一些方法
    类似"&# x6B22;"这类16进制网页编码的编码与解码方法
    正则表达式判断是否为数字
    Eclipse中一直building workspace...的问题
    Myeclipse Svn中用户名和密码修改问题专家详解
    【实用】常用JS验证函数大全
    float取2位小数,末位四舍五入(转自fjj)
    建立职场B计划
    各路由器的默认密码列表
  • 原文地址:https://www.cnblogs.com/xh831213/p/326950.html
Copyright © 2011-2022 走看看