服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Sql Server - MSSQL 2005 安全设置图文教程

MSSQL 2005 安全设置图文教程

2020-07-04 14:44MSSQL教程网 Sql Server

拿到MS SQL 2005还没有一天,总的来说,MS SQL 2005的安全性比SQL 2000要强上不少,不过默认设置还是有和原来一样的漏洞,下面我们来修改一下默认设置。

1、安装MSSQL时使用混合模式,当然SA密码最好不能为空,在SQL2005中,可以对SA这个超级用户名进行修改或删除。

use master

ALTER LOGIN [sa] WITH NAME=[zxs] /*修改SA帐号*/

sp_password '111111','123456','sa' /*修改SA密码*/

使用以上命令可修改SA帐号,也可进行图形化的修改

使用安全的帐号策略。对SA或等同用户进行最强的保护,当然,包括使用一个非常强壮的密码,如下图

MSSQL 2005 安全设置图文教程

这里可以看到SQL 2005比SQL 2000 增强的地方了。

2、SQL的认证有Windows身份认证和混合身份认证。在2005中,登陆SQL可以使用indows身份认证和混合身份认证方便,如果不希望系统管理员接触数据库的话,可以在安全性==登录名是把系统帐号“BUILTIN\Administrators”删除。当然,还有别的多余的帐号也可一同禁止,只需要在帐号==属性==状态中把是否允许连接到数据库引擎改为拒绝,还有登录改为禁用即可,不过这样的坏处就是当你忘了SA的密码时,我也没办法帮你啦。

MSSQL 2005 安全设置图文教程

也可用命令sp_change_users_login 'report' 搜索一下独立的帐户再删除

3、管理扩展存储过程

删除不必要的存储过程,因为有些存储过程能很容易地被人利用起来提升权限或进行破坏。

如果你不需要扩展存储过程xp_cmdshell请把它去掉。xp_cmdshell根本就是一个大后门。

如果不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:

sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty

sp_OAMethod sp_OASetProperty sp_OAStop

去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:

xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues

xp_regread xp_regremovemultistring xp_regwrite

还有一些其他的扩展存储过程,你也最好检查检查。

在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。运行以下SQL语句可删除所有危险的SP。

DROP PROCEDURE sp_makewebtask

exec master..sp_dropextendedproc xp_cmdshell /*命令行*/

exec master..sp_dropextendedproc xp_dirtree /*可以展开你需要了解的目录,获得所有目录深度*/

exec master..sp_dropextendedproc xp_fileexist /*用来确定一个文件是否存在*/

exec master..sp_dropextendedproc xp_getnetname /*可以获得服务器名称*/

exec master..sp_dropextendedproc xp_terminate_process

exec master..sp_dropextendedproc sp_oamethod

exec master..sp_dropextendedproc sp_oacreate

exec master..sp_dropextendedproc xp_regaddmultistring

exec master..sp_dropextendedproc xp_regdeletekey

exec master..sp_dropextendedproc xp_regdeletevalue

exec master..sp_dropextendedproc xp_regenumkeys

exec master..sp_dropextendedproc xp_regenumvalues

exec master..sp_dropextendedproc sp_add_job

exec master..sp_dropextendedproc sp_addtask

exec master..sp_dropextendedproc xp_regread

exec master..sp_dropextendedproc xp_regwrite

exec master..sp_dropextendedproc xp_readwebtask

exec master..sp_dropextendedproc xp_makewebtask

exec master..sp_dropextendedproc xp_regremovemultistring

exec master..sp_dropextendedproc sp_OACreate

DROP PROCEDURE sp_addextendedproc

5、SQL Server 2005本身就具有加密功能,完全集成了一个密钥管理架构。不过,最好远程网络连接时使用SSL来加密协议,这就需要一个证书来支持。这里搜索一下就会有很多这方面的说明,就不多说了。

6、使用IPSec策略阻止所有地址访问本机的TCP1433与UDP1434端口,也可对TCP1433端口进行修改,但是在SQL2005中,可以使用TCP动态端口,(在SQL Server Configuration Manager的SQL 2005网络配置中)如下图

MSSQL 2005 安全设置图文教程

这是SQL帮助中的说明

如果某个 SQL Server 实例已配置为侦听动态端口,则在启动时,该实例将检查操作系统中的可用端口,并为该端口打开一个端点。传入连接必须指定要连接的端口号。由于每次启动 SQL Server 时端口号都可能会改变,因此 SQL Server 提供 SQL Server 浏览器服务器,来监视端口并将传入连接指向该实例的当前端口。

也可对每个IP进行侦听

MSSQL 2005 安全设置图文教程

这是SQL帮助中的说明

指定 SQL Server 是否侦听所有绑定到计算机网卡的 IP 地址。如果设置为“否”,则使用每个 IP 地址各自的属性对话框对各个 IP 地址进行配置。如果设置为“是”,则 IPAll 属性框的设置将应用于所有 IP 地址。默认值为“是”。

延伸 · 阅读

精彩推荐