SQLServer安全性管理(ppt 60页)
合集下载
SQL Server第7章 SQL Server安全性管理
③ 使用T-SQL语句创建登录账户 例7-1:创建一个Windows登录账户ZhangSan(首先创建
Windows用户ZhangSan)。
CREATE LOGIN [ludalin\ZhangSan] FROM WINDOWS
例7-2:创建一个SQL Server 登录账户,登录名为LiSi并指定 密码abcd。
5、角色管理
2)固定服务器角色
其中: <状态选项>::=ENABLE | DISABLE <设置选项>::=PASSWORD=‘<口令>’ [, OLDPASSWORD=‘<旧口令>’] | NAME=<登录名> | DEFAULT_DATABSE=<默认数据库> | DEFAULT_LANGUAGE=<默认语言
3、登录账户管理
② 使用T_SQL语句创建数据库用户 创建数据库用户的语句为CREATE USER,其语法格式如下:
CREATE LOGIN <登录名> WITH PASSWORD=‘<密码>’ [, SID=<sid> | DEFAULT_DATABASE=<数据库名> | DEFAULT_LANGUAGE=<语言名> [, …n]]
创建SQL Server登录账户的语法如下: CREATE LOGIN <登录名> WITH PASSWORD=‘<密码>’ [, SID=<sid> | DEFAULT_DATABASE=<数据库名> | DEFAULT_LANGUAGE=<语言名> [, …n]]
3、登录账户管理
2)创建登录账户
Windows用户ZhangSan)。
CREATE LOGIN [ludalin\ZhangSan] FROM WINDOWS
例7-2:创建一个SQL Server 登录账户,登录名为LiSi并指定 密码abcd。
5、角色管理
2)固定服务器角色
其中: <状态选项>::=ENABLE | DISABLE <设置选项>::=PASSWORD=‘<口令>’ [, OLDPASSWORD=‘<旧口令>’] | NAME=<登录名> | DEFAULT_DATABSE=<默认数据库> | DEFAULT_LANGUAGE=<默认语言
3、登录账户管理
② 使用T_SQL语句创建数据库用户 创建数据库用户的语句为CREATE USER,其语法格式如下:
CREATE LOGIN <登录名> WITH PASSWORD=‘<密码>’ [, SID=<sid> | DEFAULT_DATABASE=<数据库名> | DEFAULT_LANGUAGE=<语言名> [, …n]]
创建SQL Server登录账户的语法如下: CREATE LOGIN <登录名> WITH PASSWORD=‘<密码>’ [, SID=<sid> | DEFAULT_DATABASE=<数据库名> | DEFAULT_LANGUAGE=<语言名> [, …n]]
3、登录账户管理
2)创建登录账户
13SQLServer数据库系统安全控制.PPT
依次选择主菜单中
正确性和相容性 , 防止不合理数据造成无效操作和 错误结果 。而且 , 这种约束是加在数据库的表的定 义上的 , 不需要额外书写代码 , 代价小 、性能高。例如 , SQL Server在用户程序每次对主键进行 插入 、删除 、修改等更新操作时 , 进行完整性检查, 若此操作使主属性列为“空值(NULL) ”, 或使主键值在表中不惟一 , 则拒绝此操作 , 保证数据的 实体完整性;
在弹出的对话框中可以查看或直接进行修改;选择“删除 ”命令可删除登录账号。
登录账号 , 从弹出的快捷菜单中选择“属性 ”命令,
二个层次: 访问许可机制。在SQL Server中 , 访问控制包括用户管理 、角
数据库所有者用户在其自己的数据库上拥有全 部权限 , 并可将权限授予其他用户或收回;数据库对象拥有者则在其创建的数据库对象中 拥有全部权限 , 并可将权限授予其他用户或收回;作为普通用户 , 除了极少的语句执行权限之外, 其他的权限只有靠其他用户授权。
Server复制的
复制的 部分发布。
部分发布。(3) 对客户端和服务端发送网络数据包的加密在SQL Server中启用SSL加密可以加密该数据, 提高在SQL Server实例和应用程序之间通过网络交 换数据的安全性 。若没用启用SSL加密 , 则所有客 户端和服务段之间将以明文的方式传输。
的信息。
;②差异数据库备份(只备份发生更改的数据); ③事务日志备份(备份事务日志);
④数据库文件备份(只备份特定的数据库文件和文件组)
志中 , 如果该操作没有执行到结束点就意外强行终 止 , 当下次重新启动SQL Server数据库服务器时 , 系统将根据事务日志文件中的记录自动恢复该操作 已修改的数据 , 返回到该操作前的状态。应该注意 , 自动恢复不能被关闭。
正确性和相容性 , 防止不合理数据造成无效操作和 错误结果 。而且 , 这种约束是加在数据库的表的定 义上的 , 不需要额外书写代码 , 代价小 、性能高。例如 , SQL Server在用户程序每次对主键进行 插入 、删除 、修改等更新操作时 , 进行完整性检查, 若此操作使主属性列为“空值(NULL) ”, 或使主键值在表中不惟一 , 则拒绝此操作 , 保证数据的 实体完整性;
在弹出的对话框中可以查看或直接进行修改;选择“删除 ”命令可删除登录账号。
登录账号 , 从弹出的快捷菜单中选择“属性 ”命令,
二个层次: 访问许可机制。在SQL Server中 , 访问控制包括用户管理 、角
数据库所有者用户在其自己的数据库上拥有全 部权限 , 并可将权限授予其他用户或收回;数据库对象拥有者则在其创建的数据库对象中 拥有全部权限 , 并可将权限授予其他用户或收回;作为普通用户 , 除了极少的语句执行权限之外, 其他的权限只有靠其他用户授权。
Server复制的
复制的 部分发布。
部分发布。(3) 对客户端和服务端发送网络数据包的加密在SQL Server中启用SSL加密可以加密该数据, 提高在SQL Server实例和应用程序之间通过网络交 换数据的安全性 。若没用启用SSL加密 , 则所有客 户端和服务段之间将以明文的方式传输。
的信息。
;②差异数据库备份(只备份发生更改的数据); ③事务日志备份(备份事务日志);
④数据库文件备份(只备份特定的数据库文件和文件组)
志中 , 如果该操作没有执行到结束点就意外强行终 止 , 当下次重新启动SQL Server数据库服务器时 , 系统将根据事务日志文件中的记录自动恢复该操作 已修改的数据 , 返回到该操作前的状态。应该注意 , 自动恢复不能被关闭。
sqlserver安全问题-课件-PPT文档资料
拒绝r1选择loant的权限,然后再用e1查询 loant看是否可以查询
作业
为e1添加更新bankt表和授予更新bankt表 的权限,然后添加新登录名、新用户名e2, 将e1的此权限授予e2,用e2登录查看是否 具有更新bankt表的权限
授予权限grant update on bankt to e2 收回权限revoke update on bankt from e2
10.2.3 创建架构
10.3 架构
架构既然是命名空间,那为什么我们访问一个表 的时候,比如写类似于这种语句:SELECT * FROM Table1不需要制定架构名称呢(数据库中 对象的全名称写法应该是:服务器名.数据库名.架 构名.对象名)?
那是因为MS SQL内部解析的机制是这样的(你 不写明架构名的话):第一步先在sys架构中找这 个表,找不到就在默认架构中找,再找不到就跑 到dbo架构中找。创建一个用户的时候,MS SQL 都会让你选择一个默认架构,如果你不选的话, 那就是dbo。
好比SQLSERVER就象一栋大楼,里面的每个房间都是一个 数据库.登录名只是进入大楼的钥匙,而用户名则是进入房 间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录 名在一个房间只能拥有此房间的一把钥匙。
10.2.2 sql server安全认证
Windows身份验证
Windows用户即可访问sql server
登录名和用户名关系
SQLSERVER把登录名与用户名的关系称为映射。用登录 名登录SQLSERVER后,在访问各个数据库时, SQLSERVER会自动查询此数据库中是否存在与此登录名 关联的用户名,若存在就使用此用户的权限访问此数据库 ,若不存在就是用guest用户访问此数据库。
作业
为e1添加更新bankt表和授予更新bankt表 的权限,然后添加新登录名、新用户名e2, 将e1的此权限授予e2,用e2登录查看是否 具有更新bankt表的权限
授予权限grant update on bankt to e2 收回权限revoke update on bankt from e2
10.2.3 创建架构
10.3 架构
架构既然是命名空间,那为什么我们访问一个表 的时候,比如写类似于这种语句:SELECT * FROM Table1不需要制定架构名称呢(数据库中 对象的全名称写法应该是:服务器名.数据库名.架 构名.对象名)?
那是因为MS SQL内部解析的机制是这样的(你 不写明架构名的话):第一步先在sys架构中找这 个表,找不到就在默认架构中找,再找不到就跑 到dbo架构中找。创建一个用户的时候,MS SQL 都会让你选择一个默认架构,如果你不选的话, 那就是dbo。
好比SQLSERVER就象一栋大楼,里面的每个房间都是一个 数据库.登录名只是进入大楼的钥匙,而用户名则是进入房 间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录 名在一个房间只能拥有此房间的一把钥匙。
10.2.2 sql server安全认证
Windows身份验证
Windows用户即可访问sql server
登录名和用户名关系
SQLSERVER把登录名与用户名的关系称为映射。用登录 名登录SQLSERVER后,在访问各个数据库时, SQLSERVER会自动查询此数据库中是否存在与此登录名 关联的用户名,若存在就使用此用户的权限访问此数据库 ,若不存在就是用guest用户访问此数据库。
《SQLSERVER安全性》PPT演示文稿
• 审核 SQL Server Profiler(事件跟踪)
3
6.2 SQL Server的验证模式
• Windows身份验证模式 • 混合身份验证模式(即SQL Server身份验证
模式) • 设置验证模式
4
1 Windows身份验证模式
• WINDOWS身份验证模式是指通过 Windows用户帐户连接到SQL Server,用 户身份由Windows系统验证
12
2 用Management Studio管理登录账户
• 查看、修改登录账户:
– 1) 选择服务器,展开“安全性”、“登录名。 – 2) 单击“登录名”下某一登录帐户,在弹出菜
单上单击“属性”项,可查看该帐户信息 – 3) 单击“删除”,能删除该登录帐户。
13
3 用T-SQL管理登录账户
• 新建登录账户:
18
3 用T-SQL管理用户
• CREATE USER语句; sp_adduser • ALTER USER • DROP USER; sp_revokeaccess
19
3 用T-SQL管理用户
• 例1:创建名为AborHam且密码为 340$Uxwp7Mcxo7Khy的服务器登录名,然后在 Sales中创建对应的数据库用户AborHam。
• 两个默认的系统管理员登录帐号,可以在 服务器中执行任何活动 – sa – BUILTIN\Administrators(本地管理员组)
• 注:应给sa账号指定口令
10
2 用ManΒιβλιοθήκη gement Studio管理登录账户
• 创建登录账户 • 查看、修改或删除登录帐户
11
2 用Management Studio管理登录账户
3
6.2 SQL Server的验证模式
• Windows身份验证模式 • 混合身份验证模式(即SQL Server身份验证
模式) • 设置验证模式
4
1 Windows身份验证模式
• WINDOWS身份验证模式是指通过 Windows用户帐户连接到SQL Server,用 户身份由Windows系统验证
12
2 用Management Studio管理登录账户
• 查看、修改登录账户:
– 1) 选择服务器,展开“安全性”、“登录名。 – 2) 单击“登录名”下某一登录帐户,在弹出菜
单上单击“属性”项,可查看该帐户信息 – 3) 单击“删除”,能删除该登录帐户。
13
3 用T-SQL管理登录账户
• 新建登录账户:
18
3 用T-SQL管理用户
• CREATE USER语句; sp_adduser • ALTER USER • DROP USER; sp_revokeaccess
19
3 用T-SQL管理用户
• 例1:创建名为AborHam且密码为 340$Uxwp7Mcxo7Khy的服务器登录名,然后在 Sales中创建对应的数据库用户AborHam。
• 两个默认的系统管理员登录帐号,可以在 服务器中执行任何活动 – sa – BUILTIN\Administrators(本地管理员组)
• 注:应给sa账号指定口令
10
2 用ManΒιβλιοθήκη gement Studio管理登录账户
• 创建登录账户 • 查看、修改或删除登录帐户
11
2 用Management Studio管理登录账户
第八章SQLServer安全性管理
权限:权限规定了用户在指定数据库中所能进行的操作。
第11章 SQL Server的安全性管理
11. 1 安全性管理概述 11. 2 登录身份验证管理 11. 3 角色管理 11. 4 数据库用户管理 11. 5 权限管理
登录身份验证模式
SQL Server 2000身份验证 Windows身份验证
Windows身份验证
单击“是”按钮,则系统会停止当前服 务并重新启动SQL Server 2000服务器, 使修改后的设置开始生效。
SQL Server 2000的登录账户
与SQL Server 2000提供的两种确认用户 的验证模式相对应,在SQL Server 2000 中存在两类登录账户: SQL Server账户 和Windows账户。其中Windows账户又 包含“Windows用户”账户和“Windows组” 账户两种类型。
修改登录账户属性
修改SQL Server登录账户属性 修改Windows登录账户属性
修改SQL Server登录账户属性
(1)企业管理器: 双击需要修改属性的 SQL Server登录账户, 这里双击newlogin2, 打开“SQL Server登 录属性”对话框,在 里面可以修改密码、 默认数据库和默认语 言。
Windows身份验证
在安装SQL Server 2000的过程中,系统 会让用户选择在登录SQL Server 2000时 使用哪种身份验证模式。在SQL Server 2000安装成功后,用户也可以根据需要 随时修改身份验证模式,修改的方法如 下:
Windows身份验证
Windows身份验证
删除登录账户
使用企业管理器删除(以newlogin1为例) 使用系统存储过程删除登录账户时,要
第11章 SQL Server的安全性管理
11. 1 安全性管理概述 11. 2 登录身份验证管理 11. 3 角色管理 11. 4 数据库用户管理 11. 5 权限管理
登录身份验证模式
SQL Server 2000身份验证 Windows身份验证
Windows身份验证
单击“是”按钮,则系统会停止当前服 务并重新启动SQL Server 2000服务器, 使修改后的设置开始生效。
SQL Server 2000的登录账户
与SQL Server 2000提供的两种确认用户 的验证模式相对应,在SQL Server 2000 中存在两类登录账户: SQL Server账户 和Windows账户。其中Windows账户又 包含“Windows用户”账户和“Windows组” 账户两种类型。
修改登录账户属性
修改SQL Server登录账户属性 修改Windows登录账户属性
修改SQL Server登录账户属性
(1)企业管理器: 双击需要修改属性的 SQL Server登录账户, 这里双击newlogin2, 打开“SQL Server登 录属性”对话框,在 里面可以修改密码、 默认数据库和默认语 言。
Windows身份验证
在安装SQL Server 2000的过程中,系统 会让用户选择在登录SQL Server 2000时 使用哪种身份验证模式。在SQL Server 2000安装成功后,用户也可以根据需要 随时修改身份验证模式,修改的方法如 下:
Windows身份验证
Windows身份验证
删除登录账户
使用企业管理器删除(以newlogin1为例) 使用系统存储过程删除登录账户时,要
SQL Server 安全机制.ppt
使用[Management Studio] 加密連接
1. 在 [物件總管]\[連接]\[Database Engine]。 2. 在 [連接到伺服器]\[選項]。 3. 在 [連接屬性]\勾選[加密連接]。
加密網路傳輸的資料(3)
SQL 登入帳號的密碼原則
SQL 與 Window 登入帳號, 都可套用 Windows 2003 的 帳號原則來處理,包含:
停止、啟動服務設 定 建議
若是沒有使用, 請停用此服務, 並調整啟動類型 為:手動
使用 SAC(7)- sac 公用程式
sac 公用程式
可以用於匯入和匯出 SQL Server 介面區組態 在一部電腦上設定介面區,並將相同的設定套 用、部署至其他電腦(整合單位、組織的安全 規範)
加密網路傳輸的資料(1)
系統檢視(System Views)
SQL Server 介面區組態
SQL Server Surface Area Configuration(SAC)
用來啟用、停用 SQL Server 2005 的功能、服務和遠端連接
預設組態
為停用了部份功能和元件 若為升級安裝,所有功能、服務和連 接會保留其升級前的設定狀態
預設:
Express、Evaluation 以及 Developer 版本只允許本機用戶端 連接 Enterprise、Standard 以及 Workgroup 版本可接聽透過 TCP/IP 連接的遠端用戶端
無法支援加密的用戶端將遭到拒絕存取
登入封包已經加密 若未安裝憑證
SQL Server 會在啟動時產生自我簽署憑證
此自我簽署憑證可用來代替信任的憑證授權單位發行的憑證, 但它並不提供認證或不可否認性
加密網路傳輸的資料(2)
1. 在 [物件總管]\[連接]\[Database Engine]。 2. 在 [連接到伺服器]\[選項]。 3. 在 [連接屬性]\勾選[加密連接]。
加密網路傳輸的資料(3)
SQL 登入帳號的密碼原則
SQL 與 Window 登入帳號, 都可套用 Windows 2003 的 帳號原則來處理,包含:
停止、啟動服務設 定 建議
若是沒有使用, 請停用此服務, 並調整啟動類型 為:手動
使用 SAC(7)- sac 公用程式
sac 公用程式
可以用於匯入和匯出 SQL Server 介面區組態 在一部電腦上設定介面區,並將相同的設定套 用、部署至其他電腦(整合單位、組織的安全 規範)
加密網路傳輸的資料(1)
系統檢視(System Views)
SQL Server 介面區組態
SQL Server Surface Area Configuration(SAC)
用來啟用、停用 SQL Server 2005 的功能、服務和遠端連接
預設組態
為停用了部份功能和元件 若為升級安裝,所有功能、服務和連 接會保留其升級前的設定狀態
預設:
Express、Evaluation 以及 Developer 版本只允許本機用戶端 連接 Enterprise、Standard 以及 Workgroup 版本可接聽透過 TCP/IP 連接的遠端用戶端
無法支援加密的用戶端將遭到拒絕存取
登入封包已經加密 若未安裝憑證
SQL Server 會在啟動時產生自我簽署憑證
此自我簽署憑證可用來代替信任的憑證授權單位發行的憑證, 但它並不提供認證或不可否認性
加密網路傳輸的資料(2)
数据库第10章 SQL Server 安全管理简明教程PPT课件
10.1 SQL Server 2008安全管理策略
10.1.2 SQL Server 2008登录认证模式
认证指当用户请求访问系统时,系统服务器对请求者的账户和口令 的确认,认证模式即是确认过程,认证的内容包括检查请求者的用户账 户的有效性,是否能够建立与数据库安装实例的连接等。 用户请求登录SQL Server 2008可以有两种方式,一是通过Windows 操作系统登录认证即可登录,二是通过SQL Server 2008自身的登录认 证来登录。无论哪一种认证,都需要请求者有Windows操作系统的登录 账号,即请求者应是Windows操作系统的合法用户。
10.2 用户管理
10.2.2 数据库用户
登录账户只允许用户登录到SQL Server 2008,他们无权访问各个数 据库,要访问数据库还要求在数据库中为登录账户建立相应的数据库用 户。数据库用户信息存储在每个数据库的“sysusers”系统表中。SQL Server 2008中数据库有dbo和guest两个特殊用户。 除了dbo和guest两个用户外,系统管理员或数据库所有者还可以为 已建立登录账户的用户创建数据库用户,数据库用户名可以和登录账户 相同,也可以不同。
10.1 SQL Server 2008安全管理策略
10.1.3 配置登录认证模式
具体操作步骤如下: (1)启动SSMS,连接到本地数据库实例,选择其右键快捷菜单认打开的“常规”选项卡中显示了 SQL Server 2008服务器的常规信息,包括:SQL Server 2008的版本、操作系 统版本、运行平台。默认语言以及内存和CPU等等。
10.2 用户管理
10.2.3 创建和管理登录账户
1. 使用SSMS管理Windows登录账户 具体操作步骤如下: (1)以管理员身份登录到 SQL Server Management Studio,在“对象资源 管理器”中依次展开“数据库实例”|“安全性”,选择“登录名”对象,单击鼠标右键 ,弹出快捷菜单。 (2)选择“新建登录名(N)”命令, “登录名-新建”对话框。 (3)在对话框中可以通过单击“常规”选项页的搜索按钮,在“选择用户或组” 对话框中选择相应的用户名或用户组添加到SQL Server 2008登录用户列表中。 登录认证方式选择“Windows身份验证”模式,在默认数据库下拉列表中选择 “master”。
Chapter11 SQL Server的安全性管理
打开SQL Server配置管理器进行设置。
11.1 SQL Server2005的安全机制
11.1.3 SQL Server数据库的安全性
▪ 用户成功登录SQL Server服务器后,并不自动拥 有对所有数据库的访问权限。
▪ 用户必须在想要访问的数据库中也有一个与登录 帐户相对应的数据库帐户。
▪ 当需要访问某个数据库时,SQL Server的安全系 统会根据这个数据库帐户的权限决定是否允许用 户访问该数据库。。
数据库入口 默认数据库
数据库对象安全性——数据库对象访问 数据库1(表、视图、过程、函数…)
……
数据库n
数据对象 拥有者
非拥有者 需具有权 限
11.1 SQL Server2005的安全机制
11.1.2 登录身份验证模式
▪ 登录身份验证 用来确认登录SQL Server的用户的登录帐号
和密码的正确性,由此来验证其是否具有连接SQL Server的权限。 ▪ (一)身份验证模式分类 ▪ 1、Windows身份验证 ▪ 2、SQL Server和Windows身份验证(混合模式)
并授权该用户登录SQL Server服务器。 ▪ 方法:通过搜索按钮来查找要添加的用户 ▪ QS:所添加的登录账户是否能操作所有的数据库?
11.2 管理服务器的安全性
11.2.2 添加登录账户
▪ (一)使用SSMS来添加登录账户 ▪ 2、添加SQL Server验证的登录账户 ▪ 例11-2 在当前系统中创建一个SQL Server登录账
▪ ▪
(二)使用T-SQL语句来修改登录账户 语PhAa法sSh格SeW式dO_:pRaDss=w'opradssHwAoSrHdE' D|
11.1 SQL Server2005的安全机制
11.1.3 SQL Server数据库的安全性
▪ 用户成功登录SQL Server服务器后,并不自动拥 有对所有数据库的访问权限。
▪ 用户必须在想要访问的数据库中也有一个与登录 帐户相对应的数据库帐户。
▪ 当需要访问某个数据库时,SQL Server的安全系 统会根据这个数据库帐户的权限决定是否允许用 户访问该数据库。。
数据库入口 默认数据库
数据库对象安全性——数据库对象访问 数据库1(表、视图、过程、函数…)
……
数据库n
数据对象 拥有者
非拥有者 需具有权 限
11.1 SQL Server2005的安全机制
11.1.2 登录身份验证模式
▪ 登录身份验证 用来确认登录SQL Server的用户的登录帐号
和密码的正确性,由此来验证其是否具有连接SQL Server的权限。 ▪ (一)身份验证模式分类 ▪ 1、Windows身份验证 ▪ 2、SQL Server和Windows身份验证(混合模式)
并授权该用户登录SQL Server服务器。 ▪ 方法:通过搜索按钮来查找要添加的用户 ▪ QS:所添加的登录账户是否能操作所有的数据库?
11.2 管理服务器的安全性
11.2.2 添加登录账户
▪ (一)使用SSMS来添加登录账户 ▪ 2、添加SQL Server验证的登录账户 ▪ 例11-2 在当前系统中创建一个SQL Server登录账
▪ ▪
(二)使用T-SQL语句来修改登录账户 语PhAa法sSh格SeW式dO_:pRaDss=w'opradssHwAoSrHdE' D|
【大学课件】SQL Server的安全管理-PPT精品文档
服务器级的安全性
数据库级的安全性
对象的所有权
4
docin/sundae_meng
(一) 服务器级的安全性
SQL Server的服务器级的安全性建立在控制服务器登陆帐号和密码的基础 上。用户在登录时提供的登录帐号和密码,决定了用户能否获得SQL Server的 访问权,以及在登录以后,用户在访问SQL Server进程时可以拥有的权利。 SOL Server采用了标准SQL Server登录和集成Windows NT登录两种方式。 无论是使用那种登录方式,用户在登录时提供的登录帐号和口令,决定了用户 能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server进程时可以拥有的权限。管理和设计合理的登录方式是SQL Server管理 员DBA(数据库管理员)的重要任务,是SQL Server安全体系中,DBA可以发挥 主动性的第一道防线。 SQL Server首先使用以下三种方法之一来识别用户: Windows用户登录 Windows用户组的成员资格 SQL dae_meng
第一节 SQL Server的安全概述
要弄清楚SQL Server是如何保证数据库安全,则需要了解SQL Server的 安全机制。SQL Server 2019的权限是分层进行管理的,在每一层都有相应的 安全性机制,SQL Server通过管理这种分层的安全性机制,保证数据库的安 全使用。SQL Server 2019的安全性管理可分为三个等级:即操作系统级、 SQL Server级和数据库级。
5
docin/sundae_meng
(二) 数据库级的安全性
在用户通过SQL Server服务器的安全性检验以后,将直接面对不同的数据 库入口,这是用户接受的又一次安全性检验。在建立用户的登录帐号信息时, SQL Server会提示用户选择默认的数据库,以后用户每次连接上服务器后,都 会自动转到默认的数据库上。对任何用户来说,master数据库的门总是打开的, 如果在设置登录帐号时没有指定默认的数据库,则用 户的权限将局限在 master数据库以内。 用户登录了数据库后,仍然不能访问数据,必须为其授予访问数据库对象 (表、存储过程、视图和函数等)的权限,才能够访问数据。权限的分配通过 角色来定义,用户定义的角色是定制的角色,其作用就像一个用户组。可以为 角色授予访问数据库对象的权限,并将用户加入数据库的用户定义角色。 服务器角色成员在每个数据库内创建这些数据库角色,向这些数据库角色 授予管理或用户权限,然后将 Windows 用户和组添加到这些数据库角色中。
安全性管理 PPT课件
若用户a1的登录权未被废除,即使Group1的登录权被废 除,则该用户仍能登录SQL Server。
举例 废除Windows用户S4033\a1登录到SQL Server 的访问 权
exec sp_revokelogin 'S4033\a1'
sp_granlogin 和 sp_revokelogin 只能用于Windows认证模式下,设定
第9章 SQL Server的安全性管理
• 9.1 SQL Server的安全性机制 • 9.2 SQL Server的登录模式 • 9.3 SQL Server用户标识和鉴别 • 9.4 角色与权限 • 9.5 数据库的并发控制
1
第1页/共63页
9.1 SQL Server的安全性机制
• SQL Server数据库系统的安全机制 • SQL Server的安全机制可划分为三个层次 • 数据库管理系统级安全性 • 控制用户登录到数据库管理系统的安全机制。 • 数据库级安全性 • 用户通过认证后,还需具备访问许可(Permission)权限才能够 访问SQL Server 中的数据 • 权限设置通过用户账号来实现以及使用角色代替用户组来简化安 全性管理 • 数据库对象级安全性 • 在权限范围内对服务器上的数据库进行各种操作的权限
• 主要是针对数据库对象,如表、视图、存储过程和自定义函数等。
2
第2页/共63页
9.2 SQL Server的登录模式
• 数据库管理系统级安全性控制—SQL Server 的登 录认证
• SQL Server支持两种认证方式 • Windows认证模式 • 混合认证模式
3
第3页/共63页
Windows认证模式
6
第6页/共63页
举例 废除Windows用户S4033\a1登录到SQL Server 的访问 权
exec sp_revokelogin 'S4033\a1'
sp_granlogin 和 sp_revokelogin 只能用于Windows认证模式下,设定
第9章 SQL Server的安全性管理
• 9.1 SQL Server的安全性机制 • 9.2 SQL Server的登录模式 • 9.3 SQL Server用户标识和鉴别 • 9.4 角色与权限 • 9.5 数据库的并发控制
1
第1页/共63页
9.1 SQL Server的安全性机制
• SQL Server数据库系统的安全机制 • SQL Server的安全机制可划分为三个层次 • 数据库管理系统级安全性 • 控制用户登录到数据库管理系统的安全机制。 • 数据库级安全性 • 用户通过认证后,还需具备访问许可(Permission)权限才能够 访问SQL Server 中的数据 • 权限设置通过用户账号来实现以及使用角色代替用户组来简化安 全性管理 • 数据库对象级安全性 • 在权限范围内对服务器上的数据库进行各种操作的权限
• 主要是针对数据库对象,如表、视图、存储过程和自定义函数等。
2
第2页/共63页
9.2 SQL Server的登录模式
• 数据库管理系统级安全性控制—SQL Server 的登 录认证
• SQL Server支持两种认证方式 • Windows认证模式 • 混合认证模式
3
第3页/共63页
Windows认证模式
6
第6页/共63页
《SQLServer安全》课件
改进措施
根据日志分析结果,制定针 对性的安全改进措施,包括 加固系统配置、更新安全补 丁等,以提高SQL Server的 安全性。
06
安全漏洞与补丁管理
安全漏洞的发现与评估
定期进行安全漏洞扫描
使用专业的安全漏洞扫描工具,定期对SQL Server进行漏洞扫描,发现潜在的安全风险 。
监控异常行为
通过监控SQL Server的异常行为和日志文件,及时 发现潜在的安全威胁和异常活动。
通过角色管理,可以将一组权限(如 SELECT、INSERT、UPDATE等)分配给 一个角色,然后将该角色分配给多个用户 。这种方式简化了权限管理过程,提高了 管理效率。在SQL Server中,角色可以 分为两类:服务器级角色和数据库级角色 。服务器级角色控制对整个SQL Server 实例的访问权限,而数据库级角色则控制 对特定数据库的访问权限。
详细描述
在SQL Server中,用户管理主要包括创建新的数据库用户账户、修改现有用户账户的属性以及删除不 再需要的用户账户。这些操作有助于确保只有授权用户能够访问数据库,从而提高数据库的安全性。
角色管理
总结词
角色管理是一种将一组权限分配给一个 角色的方式,以便对多个用户进行权限 管理。
VS
详细描述
感谢您的观看
THANKS
SQL Server 安全最佳实践
01
最小权限原则
为应用程序和用户分配所需的最小 权限。
加密敏感数据
使用强加密算法对敏感数据进行加 密存储。
03
02
定期更新补丁
及时修复已知的安全漏洞和缺陷。
审计与监控
实施全面的安全审计和监控机制, 及时发现异常行为。
04
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如:create user zxx for login zxx
数据库角色
数据库用户账户对该数据库所具有的权限由该账户所属的数 据库角色决定 SQL Server提供了两类数据库角色:固定数据库角色和用 户自定义数据库角色
Page 29/28
数据库角色
ቤተ መጻሕፍቲ ባይዱ
固定数据库角色
db_owner db_securityadmin db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin db_denydatareader db_denydatawriter public
向数据库添加帐户
1、添加用户账户 2、默认数据库账户
Page 26/28
向数据库添加帐户
2、默认数据库账户
Guest用户账户:允许没有用户账户的用户登录并访问数据库。 可以对其配置权限、删除或将其添加到除master、tempdb以外 的任何数据库中。满足下面条件是采用guest身份登录:
(1)登录账户本身的用户账户有权访问SQL Server,但无权访 问该数据库。
Page 9/28
身份验证模式
混合模式的优点: 通常用于运行在非Windows系统环境的用户、Internet用户或者 混杂的工作组用户访问SQL Server时
提示:
Windows用户映射到SQL Server 登录账户称为Windows登录账户, 由SQL Server验证的登录账户为SQL Serevr 登录账户。
Page 4/28
主体
主体是可以请求系统资源的个体、组合过 程。
Microsoft SQL Server 2008系统有多种不 同的主体,不同主体之间的关系是典型的 层次结构关系,位于不同层次上的主体其 在系统中影响的范围也不同。位于层次比 较高的主体,其作用范围比较大;位于层 次比较低的主体,其作用范围比较小。
Page 36/28
阶段总结 数据库用户
从登录中映射 特殊用户:Dbo和guest
数据库角色
固定数据库角色 用户定义数据库角色
Page 37/28
增加用户数据库角色
exec sp_addrolemember 'db_owner', 'zxx‘ 存放数据库用户sysusers Select * from sysusers
create login df with password='123',default_database=schtest --建立登录账号
create login zxx with password='123',default_database=schtest --建立登录账号
Page 14/28
在建立了SQL Server登录账户以 后,需要授予用户和组许可,使 他们在数据库中执行任务
Page 23/28
数据库用户
登录账户用于访问SQL Server实例,数据库用户则用于访 问数据库。访问数据库需要在数据库上建立数据库的用户
数据库用户是映射到登录账户的用户
当一个登录账户映射到一个Windows组时,可以建立一个 数据库用户映射到这个登录账户,以使Windows组的成员 能够访问数据库,也可以为这个Windows组的成员单独建 立用户,而不用再新建登录账户。
Page 6/28
身份验证模式
Windows身份验证模式
SQL Server
Windows 身份验证
用户
注意:
如果SQL server发现“SQL server登录账户列表”中的windows 账户或组账户在syslogins表中存在,则接受该账户的连接。
SQL server识别不出在windows中被删除后再重新建立的用户 或组。用户必须将该账户从SQL server中删除,然后再进行添加。
请求
服务器安全对象范围 端点 SQL Server 登录名 数据库
数据库安全对象范围 数据库用户/应用程序角色/角色/程序集/消息 类型/路由/服务/远程服务绑定/全文目录/证 书/非对称密钥/对称密钥/约定/架构
架构安全对象范围 类型/XML 架构集合/聚合/约束/函数/过 程/队列/统计信息/同义词/表/视图
服务器角色-1
什么是服务器角色(固定服务器角色)
执行服务器级管理操作的用户权限的集合 是系统内置的 不能创建服务器角色 每个角色有一定的权限 登录帐户可以添加到服务器角色 拥有大多数常用管理功能 可以使管理员很方便地给用户授予权限 作用于整个服务器而不是单独的哪个数据库
Page 35/28
添加数据库角色成员
向数据库定义的角色添加安全账户时考虑一下因素:
向角色添加安全账户时,任何应用于该角色的权限会 应用到新成员;
将一个SQL Server角色添加为另一个SQL Server角 色成员时,不能创建循环角色。故如果角色A已经是角 色B的成员时,不能将B角色添加为A角色的成员。
Page 5/28
主体
Windows 级 Windows 组 Windows 域登录名 Windows 本地登录名
SQL Server 级 SQL Server 登录名 固定服务器角色
数据库级 数据库用户 固定数据库角色 应用程序角色
有权限能操作 数据库的用户
安全对象
有权限登录到这个 服务器的用户
(2)该数据库包含了guest用户账户。
Page 27/28
添加数据库用户
有登录用户后,能用该帐号登录到dbms服 务器。要访问数据库,还要建立数据库用 户
建立数据库用户语句格式
CREATE USER user_name [ { FOR | FROM } LOGIN login_name ]
Windows 2000
或
SQL Server 登录帐户
SQL Server 验证信任连接
SQL Server 指定登录 用户和角色
数据库用户
SQL Server
SQL Server 验证用户名和口令
Page 34/28
数据库角色
数据库角色
演示
创建用户 定义数据 库角色
注意:在对角色应用权限时,该角色的每一个成员都获得该权限。
数据库角色
用户定义数据库角色:一组具有相同权限的用户 在以下情况时将用户定义的数据库角色添加到数据库: 有一组人需要在SQL server中执行一组指定的活动, 并且不存在可使用的windows组; 没有管理windows用户账户的权限。
Page 33/28
数据库用户帐户和角色
Windows 组用户
SQL Server 数据库 数据对象
数据库的安全机制
数据对象的安全机制
Page 3/28
登录到系统
当用户登录数据库管理系统时,如何确保 只有合法的用户才能登录?
身份验证和主体
SQL Server提供了身份验证模式,用以验 证客户端和服务器之间连接的方式。
Windows身份验证模式 SQL Server 和Windows 身份验证模式
serverRole create login zxx with password='123' sp_addsrvrolemember 'zxx','sysadmin'
Page 20/28
阶段总结
SQL Server 2008安全机制 身份验证模式
Windows身份验证 SQL Server身份验证
Page 7/28
身份验证模式
SQL Server
Windows 身份验证
用户
windows 身份验证模式的优势:
(1)可以将一个Windows的用户或组被映射到SQL Serevr的登录账户。
(2)用户访问SQL Server更快,不用输入用户名和密码。
(3)提供更多功能。如安全确认和密码加密、审核、密码到期、最小密码 长度和输入无效密码后将账户锁定等。
Page 8/28
身份验证模式—混合验证
SQL Server 和Windows 身份验证模式
Windows 身份验证
SQL Server
用户
用户使用Windows身份验证可以直接访问SQL Server。
用户使用SQL Server账户与密码进行连接时,将验证账户是否在 syslogins表中,密码是否匹配。
Page 39/28
管理权限
对数据库对象的安全管理,是通过权限来进 行的 权限用于控制对数据库对象的访问,以及指 定用户对数据库可以执行的操作。 访问数据库资源的唯一方法是被直接授予权 限或者间接的通过角色或组的成员授予权限。
Page 15/28
服务器角色-2
固定服务器角色
描述
sysadmin
执行任何活动
dbcreator
可以创建、更改数据库
serveradmin
可以更改服务器范围的配置选项和关闭服务器
securityadmin
管理和审核登录帐户
processadmin
可以终止 SQL Server 实例中运行的进程
setupadmin
SQL Server安全性管理
内容
SQLServer的安全机制 登录账号与数据库用户的建立 了解服务器角色的作用 了解服务器角色的作用
数据库中对象的权限赋予
SQL Server 2008安全机制
网络传输的安全机制 登录
服务器的安全机制 客户机的安全机制
身份验证 指定数据库 对象权限
用户
网络
客户机
描述
拥有数据库的所有许可 能建立架构、更改角色 能添加或删除用户、组或角色 能备份数据库 能从数据库表中读数据 能修改数据库表中的数据 能添加、修改或删除数据库对象 不能从数据库表中读数据 不修改数据库表中的数据 维护默认的权限
数据库角色
数据库用户账户对该数据库所具有的权限由该账户所属的数 据库角色决定 SQL Server提供了两类数据库角色:固定数据库角色和用 户自定义数据库角色
Page 29/28
数据库角色
ቤተ መጻሕፍቲ ባይዱ
固定数据库角色
db_owner db_securityadmin db_accessadmin db_backupoperator db_datareader db_datawriter db_ddladmin db_denydatareader db_denydatawriter public
向数据库添加帐户
1、添加用户账户 2、默认数据库账户
Page 26/28
向数据库添加帐户
2、默认数据库账户
Guest用户账户:允许没有用户账户的用户登录并访问数据库。 可以对其配置权限、删除或将其添加到除master、tempdb以外 的任何数据库中。满足下面条件是采用guest身份登录:
(1)登录账户本身的用户账户有权访问SQL Server,但无权访 问该数据库。
Page 9/28
身份验证模式
混合模式的优点: 通常用于运行在非Windows系统环境的用户、Internet用户或者 混杂的工作组用户访问SQL Server时
提示:
Windows用户映射到SQL Server 登录账户称为Windows登录账户, 由SQL Server验证的登录账户为SQL Serevr 登录账户。
Page 4/28
主体
主体是可以请求系统资源的个体、组合过 程。
Microsoft SQL Server 2008系统有多种不 同的主体,不同主体之间的关系是典型的 层次结构关系,位于不同层次上的主体其 在系统中影响的范围也不同。位于层次比 较高的主体,其作用范围比较大;位于层 次比较低的主体,其作用范围比较小。
Page 36/28
阶段总结 数据库用户
从登录中映射 特殊用户:Dbo和guest
数据库角色
固定数据库角色 用户定义数据库角色
Page 37/28
增加用户数据库角色
exec sp_addrolemember 'db_owner', 'zxx‘ 存放数据库用户sysusers Select * from sysusers
create login df with password='123',default_database=schtest --建立登录账号
create login zxx with password='123',default_database=schtest --建立登录账号
Page 14/28
在建立了SQL Server登录账户以 后,需要授予用户和组许可,使 他们在数据库中执行任务
Page 23/28
数据库用户
登录账户用于访问SQL Server实例,数据库用户则用于访 问数据库。访问数据库需要在数据库上建立数据库的用户
数据库用户是映射到登录账户的用户
当一个登录账户映射到一个Windows组时,可以建立一个 数据库用户映射到这个登录账户,以使Windows组的成员 能够访问数据库,也可以为这个Windows组的成员单独建 立用户,而不用再新建登录账户。
Page 6/28
身份验证模式
Windows身份验证模式
SQL Server
Windows 身份验证
用户
注意:
如果SQL server发现“SQL server登录账户列表”中的windows 账户或组账户在syslogins表中存在,则接受该账户的连接。
SQL server识别不出在windows中被删除后再重新建立的用户 或组。用户必须将该账户从SQL server中删除,然后再进行添加。
请求
服务器安全对象范围 端点 SQL Server 登录名 数据库
数据库安全对象范围 数据库用户/应用程序角色/角色/程序集/消息 类型/路由/服务/远程服务绑定/全文目录/证 书/非对称密钥/对称密钥/约定/架构
架构安全对象范围 类型/XML 架构集合/聚合/约束/函数/过 程/队列/统计信息/同义词/表/视图
服务器角色-1
什么是服务器角色(固定服务器角色)
执行服务器级管理操作的用户权限的集合 是系统内置的 不能创建服务器角色 每个角色有一定的权限 登录帐户可以添加到服务器角色 拥有大多数常用管理功能 可以使管理员很方便地给用户授予权限 作用于整个服务器而不是单独的哪个数据库
Page 35/28
添加数据库角色成员
向数据库定义的角色添加安全账户时考虑一下因素:
向角色添加安全账户时,任何应用于该角色的权限会 应用到新成员;
将一个SQL Server角色添加为另一个SQL Server角 色成员时,不能创建循环角色。故如果角色A已经是角 色B的成员时,不能将B角色添加为A角色的成员。
Page 5/28
主体
Windows 级 Windows 组 Windows 域登录名 Windows 本地登录名
SQL Server 级 SQL Server 登录名 固定服务器角色
数据库级 数据库用户 固定数据库角色 应用程序角色
有权限能操作 数据库的用户
安全对象
有权限登录到这个 服务器的用户
(2)该数据库包含了guest用户账户。
Page 27/28
添加数据库用户
有登录用户后,能用该帐号登录到dbms服 务器。要访问数据库,还要建立数据库用 户
建立数据库用户语句格式
CREATE USER user_name [ { FOR | FROM } LOGIN login_name ]
Windows 2000
或
SQL Server 登录帐户
SQL Server 验证信任连接
SQL Server 指定登录 用户和角色
数据库用户
SQL Server
SQL Server 验证用户名和口令
Page 34/28
数据库角色
数据库角色
演示
创建用户 定义数据 库角色
注意:在对角色应用权限时,该角色的每一个成员都获得该权限。
数据库角色
用户定义数据库角色:一组具有相同权限的用户 在以下情况时将用户定义的数据库角色添加到数据库: 有一组人需要在SQL server中执行一组指定的活动, 并且不存在可使用的windows组; 没有管理windows用户账户的权限。
Page 33/28
数据库用户帐户和角色
Windows 组用户
SQL Server 数据库 数据对象
数据库的安全机制
数据对象的安全机制
Page 3/28
登录到系统
当用户登录数据库管理系统时,如何确保 只有合法的用户才能登录?
身份验证和主体
SQL Server提供了身份验证模式,用以验 证客户端和服务器之间连接的方式。
Windows身份验证模式 SQL Server 和Windows 身份验证模式
serverRole create login zxx with password='123' sp_addsrvrolemember 'zxx','sysadmin'
Page 20/28
阶段总结
SQL Server 2008安全机制 身份验证模式
Windows身份验证 SQL Server身份验证
Page 7/28
身份验证模式
SQL Server
Windows 身份验证
用户
windows 身份验证模式的优势:
(1)可以将一个Windows的用户或组被映射到SQL Serevr的登录账户。
(2)用户访问SQL Server更快,不用输入用户名和密码。
(3)提供更多功能。如安全确认和密码加密、审核、密码到期、最小密码 长度和输入无效密码后将账户锁定等。
Page 8/28
身份验证模式—混合验证
SQL Server 和Windows 身份验证模式
Windows 身份验证
SQL Server
用户
用户使用Windows身份验证可以直接访问SQL Server。
用户使用SQL Server账户与密码进行连接时,将验证账户是否在 syslogins表中,密码是否匹配。
Page 39/28
管理权限
对数据库对象的安全管理,是通过权限来进 行的 权限用于控制对数据库对象的访问,以及指 定用户对数据库可以执行的操作。 访问数据库资源的唯一方法是被直接授予权 限或者间接的通过角色或组的成员授予权限。
Page 15/28
服务器角色-2
固定服务器角色
描述
sysadmin
执行任何活动
dbcreator
可以创建、更改数据库
serveradmin
可以更改服务器范围的配置选项和关闭服务器
securityadmin
管理和审核登录帐户
processadmin
可以终止 SQL Server 实例中运行的进程
setupadmin
SQL Server安全性管理
内容
SQLServer的安全机制 登录账号与数据库用户的建立 了解服务器角色的作用 了解服务器角色的作用
数据库中对象的权限赋予
SQL Server 2008安全机制
网络传输的安全机制 登录
服务器的安全机制 客户机的安全机制
身份验证 指定数据库 对象权限
用户
网络
客户机
描述
拥有数据库的所有许可 能建立架构、更改角色 能添加或删除用户、组或角色 能备份数据库 能从数据库表中读数据 能修改数据库表中的数据 能添加、修改或删除数据库对象 不能从数据库表中读数据 不修改数据库表中的数据 维护默认的权限