在SQL Server 2005 中使用.net程序集的一项注意
在使用CLR存储过程中遇到的一些问题,在这里进行记录:
打开CLR的支持
--在Sql Server中执行这段代码可以开启CLR
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go
如果需要访问外部资源的话,会有打开TRUSTWORTHY 属性的提示
--打开数据库的TRUSTWORTHY 属性
ALTER DATABASE DB_Name set TRUSTWORTHY on;
通过上述的设置,应该能轻易地加入程序集了
这个可以用鼠标完成就不贴代码了
最后,手动添加存储过程
--添加存储过程
CREATE PROCEDURE [dbo].[存储过程名称]
@from [nvarchar](50), -- 参数列表
@to [nvarchar](50)
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [程序集的名称].[StoredProcedures].[存储过程名称]
OK,完成了,希望对你有所帮助。
相关文档:
sysobjects 表
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
列名 数据类型 描述
name sysname 对象名。
Id int 对象标识号。
xtype char(2) 对象类型。可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认值或 DEFA ......
采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:
String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepare ......
我想面试过软件开发的朋友都会碰到sql方面的面试题,这个可以说是面试必考的。这里拿几个例子开拓一下思路。
1.
有这样一张表
教师号
星期
是否有课
1
1
有
2
3
有
1
2
有
1
2
有
要得出这样的数据:
姓名
星期一
星期二
星期三
星期四
星期五
1
1
......
讲解SQL Server数据库被挂马的解决方案
http://www.cnhacker.com/Security/Plan/200808/t20080822_6383.html
案例:一个网站遭遇入侵,破坏相当严重,SQL数据库被挂马,所有的表里面大部分字段都被多次重复插入挂马代码,查看日志,还好没有涉及到服务器的安全,只是数据库那里出现了很多异常警告而已,网站确实存在漏洞
......