长期以来,我都是用的mssql2005作为网站的数据库,有时候会由于程序等原因造成数据库的安全构成严重威胁。
针对与mssql2005的安全,应当针对于2个方面来做,针对于主要的权限及端口。(要是有人说删除不安全的系统存储过程,先说好这个方式只能针对于2000,2005及2008均未发现可以删除的方法,有的话请回复)。1.端口方面大家都知道mssql默认端口为1433,对于默认端口我一般都有一种想要封掉的冲动,主要是大家只要telnet一下就知道我的数据库是什么了。那么不是主要暴露目标嘛!所以我搭建好mssql后第一件事情就是对1433端口进行修改。修改方式如下:
Microsoft sql server 2005 ->配置工具->sql server configration manage ,
在SQL Server 2005网络配置中选择SQLEXPRESS协议
在右侧的TCP/IP中的属性中,协议对话框的内容
IP地址对话框中的默认端口修改成你所需要修改成的端口
IP2,IP3,IPAll对应的默认端口都修改成你所需要修改成的端口
3、再来设置客户端的协议的端口
SQL Native Client配置--客户端协议--TCP/IP--修改默认端口
所有的设置完成之后,重新启动SQLEXPRESS服务。
最好修改成10000以上的端口数值为宜。
2.对于权限方面的修改,我的方式是要做就做的彻底。(当然要保证能够进行本地或者远程调用,本地的话就当我没说!)
第一步:在SQL Server Management Studio中登录后-安全性-登录名下-禁用除administrators(禁用后会使windows验证登录失败,如果只想用SQL身份验证账户登录可以禁用)及sa账户。
第二步:创建一个账户,包含sysadmin权限。数据库映射中包含需要的数据库前打勾。
第三步:禁用sa账户(主要是为了第二部的时候创建账户用,有些人不喜欢用windows验证进入mssql,包括我).
禁用方法:
对要禁用的账户右击属性-状态-在设置一栏中,“是否允许连接到数据库引擎”选项中选择拒绝即可。
第四步:创建一个空数据库,将设置为拒绝的登录名默认登录数据库由master改成你新建的空数据库名。
修改方法:
账户右击属性-常规-在“默认数据库”一栏中,通过下拉菜单选取刚新建的数据库名称点击确定即可。
第五步:取消拒绝后的登录名下的数据库映射及sysadmin权限。
为什么有些人说要说删除系统存储过程,我怎么没有。(由于默认情况下mssql2005没有开启危险的系统存储过程如cmdshell)
将C:\program files\Microsoft SQL Server中的USER权限仅给予只读权限,如不赋予user权限可能造成WMI程序运行失败情况。