SQL Server 高级技术(二)—— 安全
一、服务器安全
1、Windows 身份验证模式:用户连接SQL Server 数据库时,使用 Windows 操作系统中的账号名和密码进行验证。
2、SQL Server 验证:使用 SQL Server 中的账号和密码来登录数据库服务器。
SQL Server 服务器角色 | 权限和说明 |
---|---|
bulkadmin(Bulk Insert Administartors) | 可执行 Bulk Insert 语句。Bulk INSERT 语句是以用户指定格式将数据文件加载到数据表或试图中 |
decreator(Database Administrators) | 可以创建、更改和还原任何数据库 |
processadmin(Process Administrators) | 可以终止在数据库引擎实例中运行的进程 |
securityadmin(Administrators) | 可以管理登录名及其属性 |
serveradmin(Server Administrators) | 可以更改服务器范围的配置选项和关闭服务器 |
setupadmin(Setup Administrators) | 可以添加和删除链接服务器,并可以执行某些系统存储过程 |
sysadmin(System Administrators) | 可以在数据库引擎中执行任何活动 |
SQL Server 数据库角色 | 权限和说明 |
---|---|
db_accessadmin | 可为登录账户添加或删除权限 |
db_backupoperator | 可备份该数据库 |
db_datawriter | 可在所有表中添加、更改或删除数据 |
db_ddladmin | 可在数据库中运行 DDL 命令 |
db_denydatareader | 不能读取数据库内用户表的任何数据 |
db_denydatawriter | 不能添加、更改或删除用户表中的数据 |
db_owner | 可执行数据库中所有配置和维护活动 |
db_securityadmin | 可以修改角色成员的身份和权限 |
确保数据库服务器安全的要点:
1、及时安装补丁和更新;
2、关闭不使用的SQL Server服务如 Integration Services 和 SQL Server Reporting Services 等;
3、关闭 Microsoft DTC(分布式事务) Distributed Transaction Coordinator 服务;
4、配置 SQL Server 所使用的协议,最好只使用 TCP/IP ,其他禁止;
5、妥善设置账户,启用Windows 保护服务器的各项措施,SQL 账户设置强密码,删除 SQL 来宾账户和 BULTIN\Administrators 服务器登录,不为公共角色授予权限;
6、限制cmdexec 对 sysadmin 角色的访问权限
7、注意文件和目录的安全,防止everyone 组队 SQL 文件和目录的有访问权限;
8、取消和限制共享;
9、修改SQL Server侦听端口(默认 1433);
10、审核与日志,启用SQL Server 登录审核。
二、数据安全
使用主键、外键、约束、唯一键、视图、存储过程、用户函数等可以维护SQL Server的数据安全,使用数据库的备份可以维护数据库的文件安全