SQL Serever学习11——数据库的安全管理

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 公司管理软件设计完成,但是日常工作繁忙,向领导提出增加几个管理员,帮助管理和维护系统,领导同意了,但是要求一定要管理好这几个管理员用户,保证数据库的安全。修改身份验证模式数据库验证机制sqlserver的三层安全模型:需要登录到sqlserver系统,需要登录账户需要访问某个数据库,需要成为该数据库的用户需要访问数据库的表,需要数据库管理员给自己授权,如增删改查等权限2种身份验证模式Windows身份验证用于Windows平台的用户,不需要提供密码和Windows集成验证,因为windows系统本身就有管理和验证登录用户的能力。

 

公司管理软件设计完成,但是日常工作繁忙,向领导提出增加几个管理员,帮助管理和维护系统,领导同意了,但是要求一定要管理好这几个管理员用户,保证数据库的安全。

修改身份验证模式

数据库验证机制

sqlserver的三层安全模型:

  1. 需要登录到sqlserver系统,需要登录账户
  2. 需要访问某个数据库,需要成为该数据库的用户
  3. 需要访问数据库的表,需要数据库管理员给自己授权,如增删改查等权限

2种身份验证模式

Windows身份验证

用于Windows平台的用户,不需要提供密码和Windows集成验证,因为windows系统本身就有管理和验证登录用户的能力。

优点:

  • 用户的管理交给windows系统管理,而数据库管理员专注于数据库库管理
  • 可以利用windows的账户管理的功能,包括安全验证,加密,审核,密码过期,最小密码长度,账户锁定等,不需要在sqlserver中另外建立一个登陆验证机制

混合验证

适用于各种平台操作系统,以及Internet用户,使用sqlserver用户名和密码登陆数据库服务器,及时网络上的客户机没有服务器操作系统的账户也可以登陆并使用sqlserver数据库,很方便。

设置混合验证模式

在数据库实例上右键,选择属性

 

选安全性标签,选择sqlserver和windows身份验证模式,选择仅限失败的登录,确定。

创建系统登录用户

这里准备创建一个windows用户和sqlserver用户

创建windows登录用户

打开安全性节点,右键登录名,选择新建登录名

 

选择常规,登录名必须是一个已经存在的windows账户,不确定这个账户是否存在可以通过右边的搜索来看,选择windows身份验证

默认数据库为master(默认),然后确定。

创建sqlserver登录用户

 第一步也是打开新建登录名窗口

 

然后登录名可以自定义SQLuser,选择sqlserver身份验证,密码是SQLuser,去掉勾选的“强制实施密码策略”,确定。

 

 

对于密码设置需要说明一下子:

强制实施密码策略:

对用户输入的密码格式进行要求,实施密码复杂性策略时,新密码需要符合以下原则:

  • 密码不得包含全部或部分用户账户名,部分账户名是3个以上2端使用空格(空格,制表符,回车),逗号(,),句点(.),连接符(-),下划线(_)或数字符号(#)连接的字母数字
  • 密码长度至少为8个字符
  • 密码包含大写字母(A-Z),小写字母(a-z),数字(0-9),符号(!,$,#,%)中的3类
  • 密码最长为128字符,使用的密码应尽可能长,尽可能复杂

强制密码过期:

密码过期策略用于管理密码的使用期限,在规定过期的时间节点,必须更换密码,系统将提醒用户进行该操作,并禁用带有过期密码的账户。

用户在下次登录必须更换密码:

这个就是和名字描述的一样。现在,取消选中“强制实施密码策略”复选框即可。

 

数据库用户的创建和管理

登录用户只能登录到sqlserver系统,访问数据库,必须成为数据库的用户才可以。

如果没有设置会提示没有权限

 数据库用户

数据库拥有自己的用户,一个登陆用户可以印射为多个数据库用户,数据库有2个默认用户:

  • dbo,就是Database Owner数据库拥有者,数据库的创建者,拥有数据库的最高权限,不能被删除
  • guest,可以在除了master和tempdb之外的所有数据库中添加,删除该用户

默认情况下,新建的数据库没有guest账户

数据库用户权限

sqlserver中权限有3种:

  • 默认权限,用户在成为固定服务器,数据库角色同时自动获得的角色
  • 对象权限,在数据库层次的访问和操作权限,比如选择,更新,插入,删除表,列,视图,更改,控制,引用,查看定义,查看跟踪,接管所有权
  • 语句权限,create\alter\drop database,table,view,backup database

权限类型

有3种:

  • 授予,允许用户具有操作权限
  • 具有授予权限,允许用户将权限授予其他用户
  • 拒绝,拒绝用户操作权限

windows用户和sqlserver用户的设置方式是一样的。

创建数据库用户

打开销售管理数据库的安全性节点,右键用户,选择新建用户

 

输入用户名和登录名,确定

此时的用户已经有了数据库的登录权限,但是还没有数据表的操作权限

 

设置用户权限

 现在我们授予SQLuser用户选择,插入,更新的权限,并允许他将选择权限授予其他用户,但是拒绝他删除的权限

设置对象权限

上面是通过用户来设置对象权限,现在我们通过对象来设置用户权限。

权限的修改方法和设置方法一样,不再赘述。

角色管理

 数据库中很多用户的类型和权限基本相同,可以引入角色统一管理这些类似的用户。

角色设置对于比较复杂的数据库系统很重要,可以方便的管理其中的各类用户,如果数据库用户较少,则角色的作用不那么突出。

角色

sqlserver可以通过角色统一管理数据库或服务器用户权限,通过修改角色权限来修改所有加入角色的用户的权限,方便。

sqlserver有2种角色:

  • 服务器角色
  • 数据库角色

服务器角色

用于登录服务器级别的安全权限,有8种,不可添加或删除,只能向角色添加用户成员

  1. bulkadmin
  2. dbcreator
  3. diskadmin
  4. processadmin
  5. securityadmin
  6. serveradmin
  7. setupadmin
  8. sysadmin

 sa(sysadmin)和public的角色成员身份是不允许被修改的

 数据库角色

其权限设置只针对相应的数据库,就是说同样名称数据库角色,在不同的数据库,权限是不同的。

用户可以创建数据库角色,并添加用户

  1. db_owner
  2. db_accessadmin
  3. db_datareader
  4. db_datawriter
  5. db_ddladmin
  6. db_securityadmin
  7. db_backoperator
  8. db_denydatareader
  9. db_denydatawriter
  10. public

设置服务器角色

将角色设置为sysadmin服务器角色

设置数据库角色

将销售管理数据库的用户SQLuser设置为db_datawriter数据库角色

新建数据库角色

新建数据库角色Urole,设置角色权限的基本架构为db_datawriter加上db_datareader,并将SQLuser添加到角色中

设置好之后可以看到Urole

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
5天前
|
SQL Oracle 关系型数据库
|
4天前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
24 3
|
9天前
|
SQL 监控 安全
数据库安全:SQL注入防御实践
【7月更文挑战第11天】SQL注入攻击作为一种常见的网络攻击手段,对数据库的安全性和业务稳定构成了严重威胁。为了有效防御SQL注入攻击,开发者和数据库管理员应采取一系列实践措施,包括输入验证与过滤、使用参数化查询、限制数据库用户权限、使用Web应用程序防火墙、定期更新和打补丁、实施实时监控和审计以及使用HTTPS协议等。通过这些措施的实施,可以显著提升数据库的安全性,降低遭受SQL注入攻击的风险。同时,开发者和数据库管理员应持续关注新的安全威胁和防御技术,不断提升自身的安全防护能力。
|
10天前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
15天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
134 1
|
16天前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
417 2
|
10天前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
20 0
|
10天前
|
SQL 监控 Java
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
Java面试题:简述数据库性能优化的常见手段,如索引优化、SQL语句优化等。
20 0
|
SQL 存储 Go
SQL Serever学习16——索引,触发器,数据库维护
sqlserver2014数据库应用技术 《清华大学出版社》  索引 这是一个很重要的概念,我们知道数据在计算机中其实是分页存储的,就像是单词存在字典中一样 数据库索引可以帮助我们快速定位数据在哪个存储页区,而不用扫描整个数据库 索引一旦被创建就会数据库自动管理和维护,增删改插座数据库都会对索引...
1157 0
|
SQL 关系型数据库 C#
SQL Serever学习17——数据库的分析和设计
数据库的分析和设计 设计数据库确定一个合适的数据模型,满足3个要求: 符合用户需求,包含用户所需的所有数据 能被数据库管理系统实现,如sqlserver,oracle,db2 具有比较高质量,容易理解,使用方便,便于维护,效率高 设计步骤分为6步: 需求分析,与用户沟通,达成统一意见 概念结构...
1227 0