在SQL SERVER 2005数据库中,为了提高数据库的安全性,当执行某些存储过程的时候,我们需要设置一些权限来避免一些危险性的操作造成数据库的损坏和数据的丢失等。本文从以下几个方面分别说明。
1.关于权限设置
一个库,一个连接帐号和密码,比如zhuzhu这个库,只给PUBLIC权限。SA帐号基本是不使用的.因为SA实在是太危险了.PUBLIC权限足够用了。
2.安装防火墙
如果只是在本机调试系统,因为SQL有些人没打补丁会被溢出,安装防火墙是非常好的选择,这样即使有漏洞别人也无法攻击。
3.改变端口
如果SQL Server数据库需要远程访问,端口一定是要开放的,即使安装了防火墙,也要将SQL Server的服务端口1433放开,针对SQL Server的攻击工具主要扫描的是1433端口,可以改变默认端口,这样虽然不能从根本上解决问题,但可以对付一般的扫描,改变端口最简单的办法是在打开“开始”——〉“所有程序”——〉“Microsoft SQL Server” ——〉“服务器网络实用工具”,在界面中选中“TCP/IP”,点击“属性”,把1433改为不超过65535的一个数,重启SQL Server服务,这样默认端口就改了,注意这时你远程连接SQL Server时IP地址后要加改过的端口号。
4.删除不需要的扩展存储过程
如果你的系统中确实不需要这些扩展存储过程可以删除。
删除存储过程的命令是:EXEC sp_dropextendedproc ‘存储过程的名称’
主要有一下这些:
- exec sp_dropextendedproc ’xp_cmdshell’
- exec sp_dropextendedproc ’xp_dirtree’
- exec sp_dropextendedproc ’xp_enumgroups’
- exec sp_dropextendedproc ’xp_fixeddrives’
- exec sp_dropextendedproc ’xp_loginconfig’
- exec sp_dropextendedproc ’xp_enumerrorlogs’
- exec sp_dropextendedproc ’xp_getfiledetails’
- exec sp_dropextendedproc ’Sp_OAcreate’
- exec sp_dropextendedproc ’Sp_OADestroy’
- exec sp_dropextendedproc ’Sp_OAGetErrorInfo’
- exec sp_dropextendedproc ’Sp_OAGetProperty’
- exec sp_dropextendedproc ’Sp_OAMethod’
- exec sp_dropextendedproc ’Sp_OASetProperty’
- exec sp_dropextendedproc ’Sp_OAStop’
- exec sp_dropextendedproc ’Xp_regaddmultistring’
- exec sp_dropextendedproc ’Xp_regdeletekey’
- exec sp_dropextendedproc ’Xp_regdeletevalue’
- exec sp_dropextendedproc ’Xp_regenumvalues’
- exec sp_dropextendedproc ’Xp_regread’
- exec sp_dropextendedproc ’Xp_regremovemultistring’
- exec sp_dropextendedproc ’Xp_regwrite’
- drop procedure sp_makewebtask
要恢复该存储过程,命令是:EXEC sp_addextendedproc存储过程的名称 ,@dllname ='存储过程的dll'。
例如:恢复存储过程xp_cmdshell,EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll',注意,恢复时如果xplog70.dll已删除需要copy一个。
关于SQL SERVER 2005数据库执行存储过程的权限问题就介绍到这里,谢谢大家的支持!
【编辑推荐】