保证安全的MSSQL网站账号注册

1. MSSQL数据库账号安全性问题

在MSSQL服务器上,账号管理是十分重要的一环,因为管理员账户采用默认的Sa账户,如果该账户不受保护,则可能被黑客攻击,导致恶意访问和数据泄露。因此,针对MSSQL服务器上的账户管理,需要加强安全性措施。

1.1. 内置账户Sa的几点注意

默认情况下,MSSQL服务器会创建一个Sa账户,该账户具有MSSQL服务器的最高管理员权限。Sa用户默认是可以通过TCP/IP协议直接访问SQL服务器的,同时Sa用户密码也很简单。我们应该对Sa账户进行限制,建立特殊的系统保护策略,以免该账户受到恶意攻击。

/* 限制Sa账户 */

ALTER LOGIN [sa] DISABLE;

执行以上操作之后,将会禁用Sa账户,如果想要重新使用该账户,则需要重新启用该账户。

/* 启用Sa账户 */

ALTER LOGIN [sa] ENABLE;

1.2. SQL Server管理工具配置

如果通过SQL Server管理工具登录,则需要对SQL Management Studio进行配置。一般来说,使用Sql Management Studio进行连接的方式有两种,一种方式是直接连接SQL Server,在这种情况下,需要注意的是,服务器必须启用Windows身份验证和SQL Server身份验证。另一种方式是通过网路连接到SQL Server,在这种情况下,则需要注意SqlServer配置,主要设置如下两个参数:

/* 限制允许的IP地址 */

EXEC sys.sp_addserver 'your IP address', 'local';

/* 启用操作系统验证 */

EXEC sys.sp_configure 'remote access', 1;

(reconfigure);

2. MSSQL账号注册

MSSQL账号注册需要先建立对应的数据库对象,然后再创建数据库用户,最后将数据库用户赋予相应的数据库角色或权限。下面介绍MSSQL账号注册的具体流程。

2.1. 新建数据库对象

在注册账号之前,需要先创建数据库对象,包括表、存储过程和视图等。在创建数据库对象时,需要注意对象的安全性,确保安全权限不会被非法用户获取,其中,最基本的是利用小写或者大写的字母、数字、下划线和特殊符号来组成对象的名称。

/* 新建表对象 */

CREATE TABLE [dbo].[New_Table](

[id] [int] IDENTITY(1,1) NOT NULL,

[name] [varchar](50) NOT NULL,

[age] [int] NOT NULL,

[sex] [varchar](10) NOT NULL,

[birthday] [datetime] NOT NULL,

CONSTRAINT [PK_New_Table] PRIMARY KEY CLUSTERED

(

[id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

2.2. 创建数据库用户

在创建完数据库对象之后,需要创建相应的用户。MSSQL支持两种类型的用户,一种是服务器级别的用户,另一种是数据库级别的用户。

/* 创建数据库用户 */

CREATE USER [new_user] FOR LOGIN [new_login] WITH DEFAULT_SCHEMA=dbo

/* 为用户分配角色 */

EXEC sp_addrolemember 'db_datareader', 'new_user';

EXEC sp_addrolemember 'db_datawriter', 'new_user';

2.3. 分配权限或角色

为新注册的用户分配权限和角色,需要根据实际需求进行分配,一般来说,可以为用户分配SELECT、INSERT、DELETE和UPDATE等DML权限,同时还可以为用户分配CREATE FUNCTION和EXECUTE等DDL权限。

/* 创建新角色 */

CREATE ROLE [new_role];

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE FUNCTION, EXECUTE TO [new_role];

/* 为用户分配角色 */

EXEC sp_addrolemember 'new_role', 'new_user';

3. MSSQL账号安全管理

任何一个系统都需要关注账号的安全性管理,MSSQL数据库也不例外。下面是MSSQL账号安全管理的几点提示。

3.1. 禁用Sa账户

前面已经提到,Sa用户默认是可以通过TCP/IP协议直接访问SQL服务器的,同时Sa用户密码也很简单。为了提高安全性,最好禁用Sa账户。另外,尽量避免使用sa登录,而是应该尽管用其他限制性的管理员帐户。

/* 限制Sa账户 */

ALTER LOGIN [sa] DISABLE;

3.2. 关闭SQL Server身份验证

关闭SQL Server身份验证可以避免SQL注入攻击,让客户端使用Windows身份验证方式进行登录。

/* 关闭SQL Server身份验证 */

sp_configure 'show advanced options', 1

RECONFIGURE WITH OVERRIDE

GO

sp_configure 'mixed authentication mode', 0

RECONFIGURE WITH OVERRIDE

GO

3.3. 定期更改口令

为了提高账号的安全性,应该定期更改口令,避免口令被破解。

/* 修改口令 */

ALTER LOGIN [new_login] WITH PASSWORD = 'new_password', CHECK_POLICY = OFF

3.4. 日志审计

为了避免恶意攻击造成的损失,需要对SQL Server数据库进行安全审计,记录每个用户的活动,以便发现并处理风险。

/* 创建审计对象 */

CREATE SERVER AUDIT [my_audit] TO APPLICATION_LOG;

4. 总结

MSSQL服务器账号安全管理是数据库数据安全保护的重要环节。在账号安全管理方面,应该注意Sa账号限制和服务器身份验证的禁用等等。账号注册过程中,需要新建对应的数据库对象,创建数据库用户,并为用户分配角色和权限。在账号安全管理方面,应该注意定期更改口令和进行日志审计。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签