仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 747|回复: 8
打印 上一主题 下一主题

[学习教程] Sql Server中怎样回护数据库工具的界说

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:07:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功先分明甚么是数据库工具的界说?
好比,我们利用sql语句创立一个表:
createtabletest
(
idint,
namevarchar(50)
)

那末,下面的代码就是表test的界说,触发器,视图等等都是云云。

这些信息偶然候是对照主要的,我们其实不但愿被利用者看到,那末在SqlServer怎样回护数据库工具界说,制止产生过分表露敏感信息?

一样平常的回护措施是在创立工具时利用WITHENCRYPTION来把工具加密,如许就没法检察界说。可是成绩是关于保护来讲就成了成绩,并且备份复原时这部分工具是会丧失的。

个中一个办理办法是在加密前,把界说语句放到工具的【扩大属性】中保留,如许能办理下面的成绩。
示例:
--1、创建已加密的存储历程
USEAdventureWorks
GO
CREATEPROCtest
WITHENCRYPTION
AS
SELECTSUSER_SNAME(),
USER_NAME()
GO

--2、将上述界说内容往除,使用短语加密搭配EncryptByPassPhrase函数加密,然后在用sys.sp_addextendedproperty存储历程,指定一个扩大称号。
USEAdventureWorks
GO
DECLARE@sqlVARCHAR(MAX)
SET@sql=CREATEPROCTestWITHENCRYPTIONASSELECTsuer_sname(),user_name()GO

--3、将内容加密后转换成sql_variant数据范例
DECLARE@bsqlSQL_VARIANT
SET@bsql=(SELECTCONVERT(SQL_VARIANT,ENCRYPTBYPASSPHRASE(P@ssw0rd,CONVERT(VARCHAR(MAX),@sql)))
)

--4、新增到指定存储历程的扩大属性中:
EXECsys.sp_addextendedproperty@name=Ntest界说,@value=NSystem.Byte[],
@level0type=NSCHEMA,@level0name=Ndbo,@level1type=NPROCEDURE,
@level1name=Ntest
GO
EXECsys.sp_addextendedproperty@name=N代码内容,
@value=NCREATEPROCTestWITHENCRYPTIONASSELECTsuer_sname(),user_name()GO,
@level0type=NSCHEMA,@level0name=Ndbo,@level1type=NPROCEDURE,
@level1name=Ntest
GO

--5、复原
DECLARE@pwdVARCHAR(100)=P@ssw0rd
--暗码短语

DECLARE@procVARCHAR(100)=test
--存储历程名

DECLARE@exNameNVARCHAR(100)=代码内容
--扩大属性名

--将底本了局查询
SELECTvalueFROMsys.all_objectsASsp
INNERJOINsys.extended_propertiesASPONP.major_id=sp.object_idANDP.minor_id=0ANDP.class=1
WHERE(P.name=@exName)
AND((sp.type=Np
ORsp.type=Nrf
ORsp.type=pc
)
AND(sp.name=@procANDSCHEMA_NAME(sp.schema_id)=Ndbo)
)
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继
简单生活 该用户已被删除
沙发
 楼主| 发表于 2015-2-4 20:37:25 | 显示全部楼层
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-1 17:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表