SQL Server 数据库之SQL Server 数据库的安全设置
SQL Server 数据库的安全设置
- 1. 概述
- 2. 更改登录用户验证方式
- 3. 创建与删除登录用户
- 4. 创建与删除数据库用户
- 5. 设置服务器角色权限
- 5.1. **查看角色属性**
- 5.2 操作权限
- 6. 密码策略
- 6.1. 密码复杂性
- 6.2. 密码过期
1. 概述
数据库服务器是所有应用的数据中转站,若数据库服务被恶意攻击,可能会造成数据泄露、数据丢失、数据被恶意篡改等诸多无法挽回的损失;
所以,对数据库进行安全设置是每一个数据库管理人员都应掌握的知识;
2. 更改登录用户验证方式
SQL Server 登录模式分为 “Windows 身份验证模式” 和 “SQL Server 身份验证模式” 两种,若在安装 SQL Server 时选择的是 “Windows 身份验证模式 ”,则 sa 登录账号被禁用;若想开启 sa 账户,则能使用 ALTER LOGIN 语句;
在 SQL Server 对象资源管理器中,右击服务器,属性;
安全性 → 服务器身份验证 ,选择新的服务器身份验证 → 确定;
确定,重启 SQL Server ,新的验证方式被启用;
3. 创建与删除登录用户
在 SQL Server 中能创建多个登录用户来访问数据库服务器,SQL Server 能对创建的登录用户做严格的设置来控制账户的访问权限、密码策略等;
在 SQL Server 数据库中创建新的登录用户步骤如下:
在对象资源管理器中找到安全性节点,展开登录名,选择 新建登录名;
在 登录名-新建对话框 → 常规,输入新建账户的名字 Tim → SQL Server 身份验证,输入密码;
若用户在上述操作中选中了 强制实施密码策略,系统就会对所设置的密码的长度组合复杂度哟一个强制性的要求,提高密码的安全性;
- 打开 服务器角色 ,对服务器角色用户向用户授予服务器范围内的安全特权方式进行设定;
注意: 选中的是 pubic 特权,这是 SQL Server 中的一类默认角色,若想让角色拥有服务器管理的最高权限,可选择 sysadmin
;
打开 用户映射 → 在右上部分选中此账户能操作的数据库 → 在右下部分选中定义登陆者的角色身份;
最后选择 状态,在此页中选中授予允许连接到数据库引擎和已启用登录;
设置完毕后单击 确定,新的登录账户创建完毕,可在登录名节点下找到新建的登录用户 Tim;
若需删除某个账户,只需右击登录名,选择 删除;
4. 创建与删除数据库用户
数据库用户是映射到登录账户上的;
在 SQL Server 数据库中能为一个数据库创建多个数据库用户,
创建数据库用户的操作步骤如下所示:
数据库 → 安全性 → 用户,右击选择 新建用户;
常规 → 登录名 → 输入 登录名;
在 此用户拥有的架构 中勾线 db_accessadmin;
在数据库角色成员身份中勾选 db_accessadmin;
单击确定,即可完成数据库用户的添加;
若想删除数据库,只需要右击要删除的用户名,选择 删除,即可;
注意: 除了使用用户资源管理器进行创建用户之外,新建用户还能用 T-SQL 语句 CREATE USER
、CREATE LOGIN
语句进行创建;
5. 设置服务器角色权限
当几个用户需要在某个特定的数据库中执行类型的动作时,能向该数据库中添加一个角色;
数据库角色指定了能访问相同数据库对象的一组数据库用户;
固定服务器角色已经具备了执行指定操作的权限,能把其他登录名作为成员添加到固定服务器角色中,这样该登录名就能继承固定服务器角色的权限;
在 SQL Server 数据库中默认的服务器角色如下:
服务器角色的作用和权限,如下所示:
- bulkadmin: 这个服务器角色的成员能运行 BULK INSERT 语句;这条语句运行从文本文件中将数据导入 SQL Server 数据库中,为需要执行大容量插入数据的域账户而设计;
- dbcreator: 这个服务器角色成员能创建、更改、删除和还原任何数据库;这既是适合助理 DBA 的角色,也可能是适合开发人员的角色;
- diskadmin: 这个服务器角色能用于管理磁盘文件,它适合助理 DBA;
- processadmin: SQL Server 数据库能够多任务化,就是能通过执行多个进程做多个事件;
- serveradmin: 这个数据库角色的成员能更改服务器范围的配置选项和关闭服务器;
- setupadmin: 为需要管理链接服务器和控制启动的存储过程的用户而设计,这个角色的成员能添加到 setupadmin,能增加、删除和配置服务器,并控制启动过程;
- sysadmin: 这个服务器角色有权在 SQL Server 数据库中执行任何任务;
- pubilc: 两大特点,一个初始状态时没有权限,二是所有的数据库用户都是它的成员;
5.1. 查看角色属性
要查看服务器角色的属性时,右击需要查看的角色名 → 属性;
5.2 操作权限
对角色权限的操作分为 3 种状态,授予、撤销、拒绝,分别用 GRANT
、REVOKE
、DENY
语句进行操作;
授予权限的基本语法格式如下:
GRANT
{ALL|statement [,..n] }
TO security_account [,..n]
注意: 将权限授予角色,而不是单独的登录名或用户;当某个用户由其他人取代时,能从角色中删除离开的用户,并向角色中添加新用户,与该角色关联的许多权限都将自动应用于新用户;
6. 密码策略
在 Windows Server 2003 或更高版本中运行时,SQL Server 数据库能使用 Windows 密码策略机制;
SQL Server 数据库能将在内部使用的密码应用在 Windows Server 2003 中,两者使用相同的复杂性策略和过期策略;
此功能需要通过 NetValidatePasswordPolicy API 实现,该 API 只在 Windows Server 2003 和更高版本中提供;
6.1. 密码复杂性
密码复杂性策略通过增加可能密码的数量来阻止强力攻击;实施密码复杂性策略时,新密码必须符合密码不能包含全部或部分用户账户名的原则,部分账户名是指 3 个或 3 个以上
两端用 “空白”(空格、制表符、回车符等)或任何以下字符分隔的连续字母数字字符:逗号(,)、句号(.)、连字符(-)、下划线(_)或数字字符号(#);
密码的设置时要注意:
- 密码长度至少为 8 个字符;
- 密码包含以下 4 类字符中的 3 类:拉丁文大写字母(AZ)、拉丁文小写字母(az)、10 个基本数字(0~9);
- 非字母数字字符,如感叹号(!)、美元符号($)、数字字符(#)或百分号(%);
密码最长可为 128 个字符;使用的密码应尽可能长、尽可能复杂;
6.2. 密码过期
密码过期策略用于管理密码的使用过程;若 SQL Server 数据库中试试密码过期策略,则系统将提醒用户更改旧密码,并禁用带有过期密码的账户;
用户能为每个 SQL Server 登录名单独配置密码策略实施,通过使用 ALTER LOGIN(T-SQL)
来配置 SQL Server 登录名的密码策略选项;
配置密码策略实施时,适用以下规则,
- 若
CHECK_POLICY
改为 ON,则将出现以下行为:
除非将 CHECK_EXPIRATION 显示地设置为 OFF,否则也会将其设置为 ON;
密码历史使用当前的密码哈希值初始化; - 若
CHECK_POLICY
改为 OFF,则将出现以下行为:
CHECK_EXPIRATION 也设置为 OFF;
清除密码历史;
lockout_time
的值被重置;
若指定 MUST_cHANGE
,则 CHECK_EXPIRATION
和 CHECK_POLICY
必须设置为 ON;否则,该语句将失败;
若 CHECK_POLICY
设置为 OFF,则 CHECK_EXPIRATION
不能设置为 ON,包含此选项组合的 ALTER LOGIN
语句将失败;
SQL Server 数据库之SQL Server 数据库的安全设置相关推荐
- 合肥工业大学—SQL Server数据库实验四:数据库的分离和附加
数据库的分离和附加 1. 数据库分离 2. 数据库附加 1. 数据库分离 当SQL Server服务器运行时,该服务器上所有的数据库自动处于运行状态,而运行中的数据库文件是无法进行数据库文件的拷贝的. ...
- 将Excel文件数据库导入SQL Server
将Excel文件数据库导入SQL Server的三种方案//方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server openFileDialog = n ...
- SQL Server 2008高可用性系列:数据库快照
SQL Server 2008高可用性系列:数据库快照 http://database.51cto.com 2010-09-13 14:45 我爱菊花 博客园 我要评论(0) 摘要:我们今天要 ...
- SQL Server 2008 R2如何开启数据库的远程连接
SQL Server 2008 R2如何开启数据库的远程连接 转载于:https://www.cnblogs.com/macT/p/10213025.html
- Sql Server实用操作-无数据库日志文件恢复数据库两种方法
数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启s ...
- 关于Java中的JDBC使用和数据库(SQL Server)连接之后的一些操作
1.首先是java连接数据库的一些准备 (1)打开SQL Server数据库的配置管理器: 如果打不开数据库的话可以在命令行窗口:cmd->SQLServerManager14.msc 点击SQ ...
- mysql2005备份_创建完整数据库备份 - SQL Server | Microsoft Docs
完整数据库备份Create a Full Database Backup 09/12/2019 本文内容 适用于:Applies to: SQL ServerSQL Server(所有支持的版本)SQ ...
- 应用程序的数据库从Sql Server迁移到Oracle
应用程序的数据库从Sql Server迁移到Oracle 迁移案例一:数据库: Sql Server 2008到Oracle 9i 工具: Sybase PowerDesiner 12 试用版, PL ...
- Java JDBC连接oracle、SQL server、My Sql数据库的驱动
JAVA创建以JDBC连接数据库的程序 ①加载JDBC驱动程序: 1.oracle---------JDBC try{//加载oracle的驱动类Class.forName("oracle. ...
- 数据库:SQL Server与MySQL
本文系转载文章,转载自博客园https://www.cnblogs.com/hhx626/p/6010369.html 一.SQL Server基本简介 1.1,概述 SQL Server 是Micr ...
最新文章
- 结合实例讲解广域网路由基本技术
- AI:一个20年程序猿的学习资料大全—区块链/大数据/数据集/云计算/前沿大会资料——只有你不想要的,没有你找不到的
- virtualenv杂记
- python动态_python的动态性和_slot_
- 【IDEA】idea中maven项目Resource目录下的资源文件无法编译
- Java-泛型T T与T的用法
- TUXEDO配置常见问题及解决方法
- 嵌入式系统下对GPIO的简单操作
- mysql热拷贝_MySQL备份与恢复之热拷贝
- WPF界面框架的设计
- win7设置环境变量未生效
- 10首不可不读的苏轼“最”诗词,人间万事,不过如此!
- 基于Web的建筑智能化系统集成组态软件的设计与应用
- 爬取电影天堂的最新电影
- 爪爪博士:小奶猫感冒发烧怎么降温才有效
- 1_11_4 23 python基础学习
- 从反人工智能到反无人机,谁在左右科技的进步?
- helm 构建 chart
- idea配置tomcat日志中文乱码,且修改后idea正常,但cmd窗口任然中文乱码解决方法
- python中的corr()方法