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

  • 相关阅读:
    关于通胀,交易手续费和加密货币的货币政策
    私有链和联盟链的机会与挑战
    耶鲁大学公开课:博弈论第九节(笔记)
    区块链匿名技术
    区块链对比数据库
    硬盘 分区 格式化 和挂载
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
  • 原文地址:https://www.cnblogs.com/xh831213/p/326950.html
Copyright © 2011-2022 走看看