SQL Serever学习11——数据库的安全管理
公司管理软件设计完成,但是日常工作繁忙,向领导提出增加几个管理员,帮助管理和维护系统,领导同意了,但是要求一定要管理好这几个管理员用户,保证数据库的安全。
修改身份验证模式
数据库验证机制
sqlserver的三层安全模型:
- 需要登录到sqlserver系统,需要登录账户
- 需要访问某个数据库,需要成为该数据库的用户
- 需要访问数据库的表,需要数据库管理员给自己授权,如增删改查等权限
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种,不可添加或删除,只能向角色添加用户成员
- bulkadmin
- dbcreator
- diskadmin
- processadmin
- securityadmin
- serveradmin
- setupadmin
- sysadmin
sa(sysadmin)和public的角色成员身份是不允许被修改的
数据库角色
其权限设置只针对相应的数据库,就是说同样名称数据库角色,在不同的数据库,权限是不同的。
用户可以创建数据库角色,并添加用户
- db_owner
- db_accessadmin
- db_datareader
- db_datawriter
- db_ddladmin
- db_securityadmin
- db_backoperator
- db_denydatareader
- db_denydatawriter
- public
设置服务器角色
将角色设置为sysadmin服务器角色
设置数据库角色
将销售管理数据库的用户SQLuser设置为db_datawriter数据库角色
新建数据库角色
新建数据库角色Urole,设置角色权限的基本架构为db_datawriter加上db_datareader,并将SQLuser添加到角色中
设置好之后可以看到Urole
SQL Serever学习11——数据库的安全管理的更多相关文章
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...
- SQL Serever学习17——数据库的分析和设计
数据库的分析和设计 设计数据库确定一个合适的数据模型,满足3个要求: 符合用户需求,包含用户所需的所有数据 能被数据库管理系统实现,如sqlserver,oracle,db2 具有比较高质量,容易理解 ...
- SQL Serever学习13——数据库编程语言
编程基础 注释 注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行. 单行注释 SELECT GETDATE() --查询当前日期 多行注释 /* 注释有助于 理解操作的内容 查 ...
- SQL Serever学习5——数据库配置
数据库的主要属性 限制访问 用来设置数据允许用户访问的状态,或者说允许多少客户访问,有3个选项: MULTI_USER(多个),大多数数据库正常状态,允许多个用户同时访问该数据库. SINGLE_US ...
- SQL Serever学习4
SQL Server系统中数据库相关概念 在SQLServer数据库系统中分为2大类,系统数据库和用户数据库. SQLServer安装后系统会自动生成4个系统数据库,他们是Master,Model,M ...
- SQL基础学习_01_数据库和表
SQL语句及其种类 1. SQL语句分为三类: DDL(Data Definition Language): CREATE.DROP.ALTER; DML(Data Manipulat ...
- SQL Serever学习16——索引,触发器,数据库维护
sqlserver2014数据库应用技术 <清华大学出版社> 索引 这是一个很重要的概念,我们知道数据在计算机中其实是分页存储的,就像是单词存在字典中一样 数据库索引可以帮助我们快速定位数 ...
- SQL Serever学习15——进阶
特别说明:在sqlserver2014中,不区分大小写,也就是说,SQL是大小写不敏感的 数据库模型3类: 层次模型 网状模型 关系模型 关系型数据库语言3种: DDL数据定义语言 CREATE(创建 ...
- SQL Serever学习14——存储过程和触发器
存储过程 在数据库中很多查询都是大同小异,编写他们费时费力,将他们保存起来,以后执行就很方便了,把SQL语句“封装”起来. 存储过程的概念 存储过程是一组SQL语句集,经过编译存储,可以”一次编译,多 ...
随机推荐
- c# 生成二维码图片
转载自:https://blog.csdn.net/hyunbar/article/details/78271778 1.在C#中直接引用ThoughtWorks.QRCode.dll 类 2.封装方 ...
- django系列3.3--view视图函数, render, reverse(未完待续)
1.view视图函数 urls分发之后所用到的处理函数 2.render 用于渲染页面 在views.py中常用 from django.shortcuts import render, HttpRe ...
- Python----初次见面,请多关照!
1.计算机的最基本认识 CPU(大脑) 3GHZ + 内存(DDR4) + 主板 + 电源(心脏)+ 显示器 + 键盘 +鼠标+ 显卡 + 硬盘 80MB/s 操作系统分为: windows 家用 l ...
- php中的XML DOM(10)
1.PHP DOM (1) Php中的DOM跟javascript不一样,属性不用另外增加一个节点 2.主要类 DOMDocument :文档类 DOMNodeList :节点列表类 DOMNode ...
- 【文文殿下】[BZOJ4327] JSOI2012 玄武密码
SAM裸题.这道题卡空间.要小心数组别开炸了. #include<cstdio> #include<cstring> typedef long long ll; const i ...
- Elasticsearch(八)【NEST高级客户端--分析器】
分析 分析是将文本(如任何电子邮件的正文)转换为添加到反向索引中进行搜索的tokens或terms的过程. 分析由analyzer执行,分析器可以是内置分析器或每个索引定义的定制分析器. 书写分析器测 ...
- javascript事件的类型整理
mouseenter:只能进入目标元素才会触发: mouseleave:只能离开目标元素才会触发: mouseover:进入目标元素或者其子元素的时候触发: mouseout:离开目标元素或者其子元素 ...
- python --爬虫基础 --爬取今日头条 使用 requests 库的基本操作, Ajax
'''思路一: 由于是Ajax的网页,需要先往下划几下看看XHR的内容变化二:分析js中的代码内容三:获取一页中的内容四:获取图片五:保存在本地 使用的库1. requests 网页获取库 2.fro ...
- 题目1006:ZOJ问题(字符串处理)
问题来源 http://ac.jobdu.com/problem.php?pid=1006 问题描述 输入一个只包含'z','o','j'三种字符的字符串,判断是否符合要求. 问题分析 分析AC的三个 ...
- 题目1002:Grading(简单判断)
问题来源 http://ac.jobdu.com/problem.php?pid=1002 问题描述 题目背景为高考试卷批改打分制度.对于每一道题,至少需要两位评审老师进行打分, 当两个老师的打分结果 ...