彻底杜绝SQL注入 1.不要使用sa用户连接数据库
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select a.name,b.name from sysobjects a,syscolumns b
where a.id=b.id and a.xtype= 'u ' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN print @c
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
以上设置 其中第3,4两步,在SQL2005中,如何设置?????
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
DECLARE @T varchar(255),
@C varchar(255)
DECLARE Table_Cursor CURSOR FOR
Select a.name,b.name from sysobjects a,syscolumns b
where a.id=b.id and a.xtype= 'u ' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167)
OPEN Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN print @c
FETCH NEXT FROM Table_Cursor INTO @T,@C
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
以上设置 其中第3,4两步,在SQL2005中,如何设置?????
解决方案 »
- 标准表达式数据不匹配
- 如何用存储过程实现以下功能?
- 求一Sql,向表里插入数据时判断该条记录是否存在,如果存在则更新,不存在则插入!
- SQL SERVER帮助用不了-----
- [SQLServer 2000 Driver for JDBC]Error establishing socket
- 顶者有分!!! 200 分 求 存储过程 ---- 分拣电子邮件
- 论坛数据库,列出论坛名,论坛发贴总数,论坛主题总数,最后回复,版主。怎么用一个存储规程写?很头痛啊
- 这条sql怎么写?
- 我是初学者 请大家帮帮忙吧!!
- 请问如何访问上海证券交易所的实时行情数据库?
- 请教,如何将多个记录数据集中到一个字段中?
- 简单问题,新建指定间隔数的表
找到数据库中角色,PUBLIC,然后右键,属性,会有权限设置的
好像2005中是打点的sys.objects你去查询分析器执行一下,看看,SELECT * FROM sys.objects要不然等用过2005的来分析
1 全用存储过程访问
2 前台程序员避免直接调用sql
3 参数要过滤