第11章 数据库的安全管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 2008
数据库实用技术
角色管理
2.查看或设置数据库public角色的权限:
第十一章 数据库的安全性管理
⑴ 在对象资源管理器 中,依次展开“数据 库”→“stusystem” →“安全性”→“角 色”→“数据库角色” 节点,选择“public”, 右击选择“属性”命令, 打开“数据库角色属性” 对话框。 ⑵ 在“数据库角色属 性”对话框。在“安全 对象”页中,可以查看 当前public角色的权限 并可根据需要进行修改, 如左图所示。
数据库实用技术
角色管理
11.2.3 应用程序角色
数据库可为多个应用程序而存在。 不同的应用程序对同一数据库有不同的可访问范围,因此有 了应用程序角色的概念。 例如,对一个计费系统数据库,同时被客户关系管理系统和 网上营业厅系统访问,这些系统都拥有自己关注的数据信息, 也存在彼此之间不可访问的信息。 这就是两个不同的应用程序角色。
SQL Server 2008
数据库实用技术
权限管理
11.3.2 设置权限
利用SSMS设置权限:
第十一章 数据库的安全性管理
以对stusystem数据库用户Banana_Anna的设置权限为例, 操作步骤如下:
SQL Server 2008
数据库实用技术
角色管理
1.固定数据库角色的权限说明:
第十一章 数据库的安全性管理
db_accessadmin:可以管理登录名对该数据库的访问。 db_backupoperator:可以备份数据库。 db_datareader:可以从所有用户定义表中读取所有数据。 db_datawriter:可以对所有用户定义表进行添加、删除或更改数 据。 db_ddladmin:可以在该数据库中执行任何DDL命令。 db_denydatareader:不能从用户表中读取数据。 db_denydatawriter:不能对用户表执行添加、修改或删除数据。 db_owner:可以执行数据库的所有活动,在该数据库中拥有全部 权限。 db_securityadmin:可以修改角色成员身份和管理权限。 public:可以看到任何由拥有公共或完整权限的用户所创建的数据 库对象。每个数据库用户都属于public数据库角色。 只有public角色的权限可以根据需要修改。
bulkadmin:可以运行 Bulk Insert语句。
diskadmin:可以管理磁盘文件。 dbcreator:可以创建、更改、删除和还原任何数据库。
public:拥有查看数据库权限,但不能对其做修改。
前面8个服务器角色的权限是系统预先设定好的,不能更改,只 有public角色的权限可以根据需要修改。
数据库实用技术
基本概念
角色(roles)。 角色是SQL Server 2008中管理权限相近的安全账 户的集合,相当于Windows域中的组。
权限。 权限是SQL Server 2008安全性的最后一个级别, 实际上是安全机制的设计者分配给某一个用户( 或角色)访问数据库时,对数据对象的可以进行 的操作集合。
第二次认证:
第三次认证:
SQL Server 2008
数据库实用技术
SQL Server 2008安全机制
服务器的安全机制 网络传输的安全机制 客户机的安全机制
身份验证 指定数据库 对象权限
登录
网络
用户 客户机 SQL Server 数据库 数据对象
数据库的安全机制
数据对象的安全机制
数据库实用技术
SQL Server 2008
数据库实用技术
11.3 权限管理
数据库权限
第十一章 数据库的安全性管理
用于控制对数据库对象的访问和语句执行。 数据库权限可分为数据库对象权限和数据库语句权限,主要 包括授予、撤销和拒绝管理。
授予权限(GRANT):允许用户或角色具有某种操作权限; 撤销权限(REVOKE):撤销以前授予或拒绝了的权限; 拒绝权限(DENY):拒绝给安全帐户授予权限,并且可以防 止安全帐户通过其组或角色成员身份继承权限。
第十一章 数据库的安全性管理
数据库实用技术
第十一章 数据库的安全性管理
1
2 3 4 5 数据库的安全机制 角色管理 权限管理 服务器登录名 数据库用户
SQL Server 2008
数据库实用技术
11.1 数据库的安全机制
第十一章 数据库的安全性管理
数据库的安全很重要,事实上它比数据库的设计、创建 和执行都要重要! 高铁售票网站瘫痪、信息泄露!
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
11.2.2 数据库角色
如果我们要查看stusystem的数据库角 色,可以在对象资源管理器中,通过依 次展开“数据 库”→“stusystem”→“安全 性”→“角色”→“数据库角色”节点, 看到这10种数据库角色,如左图所示。
SQL Server内部的三层安全级别:
1.SQL Server级的安全性
第一层是SQL Server服务器级别的安全性,即对登记帐号 的管理。
2.数据库级别的安全性
第二层安全性是数据库级别的安全性,即对数据库用户的管 理。 第三层安全性是数据库对象级别的安全性,即对用户的权限 管理。
SQL Server 2008
数据库实用技术
11.3.1 权限类型
对象 数据库 权限类型 创建操作, 修改操作, 备份操作
权限管理
第十一章 数据库的安全性管理
根据操作的对象不同,权限的类型也不相同
权限列举 CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE FUNCTION、CREATE PROCEDURE、 CREAATE TRIGGER,ALTER DATABASE、ALTER TABLE、ALTER VIEW、ALTER FUNCTION、ALTER PROCEDURE、ALTER TRIGGER,BACKUP DATABASE、 BACKUP LOG,CONNECT,CONTROL等。
表和视图
插入数据,更新数据, INSERT,UPDATE,DELETE,SELECT,REFERENCES 等。 删除数据,查询,引 用 执行,控制查看,定义 EXECUTE,CONTROL等。
存储过程
标量函数 表值函数
执行, 引用, 控制
EXECUTE,REFERENCES,CONTROL等。
插入数据,更新数据, INSERT,UPDATE,DELETE,SELECT, REFERENCES等。 删除数据,查询, 引用
安全管理
一个用户要对某一个数据库进行操作 ,必须同时满足两 个条件:
能连接到SQL Server服务器(连接权) 有执行对数据库操作的权限(访问权)
数据库Baidu Nhomakorabea用技术
安全管理
房子 (SQL Server)
用户
606 大门
授权
登录
数据库实用技术
安全对象
安全对象是 SQL Server 2008数据库引擎授权系统控制 对其进行访问的资源。 通过创建可以为自己设置安全性的名为“范围”的嵌套 层次结构,可以将某些安全对象包含在其他安全对象中。 安全对象范围包括服务器、数据库、架构和对象。
SQL Server 2008
3.数据库对象级别的安全性
数据库实用技术
数据库的安全机制
第十一章 数据库的安全性管理
用户对SQL Server数据库中的数据进行访问及操作, 必须经过三次认证:
第一次认证:
验证用户是否具有连接到该SQL Server数据库服务器的资 格。 当用户访问数据库时,必须验证用户是否是该数据库的合法 用户。 当用户访问数据库中的数据对象时,验证用户是否具有引用 和操作权限。
数据库实用技术
11.2 角色管理
服务器角色
数据库角色
应用程序角色
SQL Server 2008
数据库实用技术
11.2 角色管理
第十一章 数据库的安全性管理
11.2.1 服务器角色
SQL Server 2008提供了9种固定的服 务器角色,用户不能自己创建服务器 角色。 可以在对象资源管理器中,通过依次 展开“安全性”→“服务器角色”节 点,看到这9种服务器角色,如左图 所示。
数据库的安全性包括两个方面的含义:
要保证具有数据访问权限的用户能够登录到数据库服务器 上,并且能够访问数据以及对数据库对象实施各种权限范 围内的操作; 要防止所有的非授权用户的非法操作。
SQL Server 2008
数据库实用技术
数据库的安全机制
第十一章 数据库的安全性管理
SQL Server 2008的安全性管理是建立在安全身份验证 和访问权限机制上。
SQL Server 2008
数据库实用技术
角色管理
3.新建数据库角色:
第十一章 数据库的安全性管理
例如:要在数据库stusystem中新建一个数据库角色。 具体步骤如下:
• ⑴ 在对象资源管理器中,依次展开“数据库”→“stusystem” →“安全性”→“角色”节点,选择 “数据库角色”,右击,选 择“新建数据库角色”命令,打开“数据库角色-新建”对话框, 如下图所示。
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
服务器角色
1.固定服务器角色的权限说明:
sysadmin:可以在服务器上执行任何操作。 Serveradmin:可以更改服务器范围的配置选项和关闭服务器。 securityadmin:可以管理登录名及其属性。 processadmin:可以终止在SQL Server实例中运行的进程。 setupadmin:可以添加和删除链接服务器。
SQL Server 2008
数据库实用技术
角色管理
2.查看和设置服务器public角色的权限:
第十一章 数据库的安全性管理
⑴ 在对象资源管理器中,依次展开“安全性”→“服务器角色” 节点,选择“public”,右击,选择“属性”。 ⑵ 在“服务器角色属性”对话框的“权限”页中,可以查看当前 public角色的权限并可根据需要进行修改,如下图所示。
第十一章 数据库的安全性管理
SQL Server 2008
数据库实用技术
角色管理
创建应用程序角色:
第十一章 数据库的安全性管理
【例12-1】在stusystem中创建一个应用程序角色 “student_role”。 具体步骤如下: • ⑴ 在对象资源管理器中, 依次展开“数据 库”→“stusystem” →“安全性”→“角色” 节点,选择 “应用程序角 色”,右击选择“新建应 用程序角色”命令,打开 对话框。 • ⑵ 在“应用程序角色-新建” 对话框的“常规”页中添 加角色名称 “student_role”,并输 入密码等信息。 • ⑶ 单击“确定”按钮,即 可创建新的应用程序角色。
用户是指能够在SQL Server 2008安全机制下,访问数据 库对象中的数据的操作员或客户。用户若要访问数据库对 象,必须获得管理员分配的账号和密码。 从SQL Server 2008管理系统的角度来看,用户就是一组 匹配的账户和密码。 账户和账号是一个概念的不同说法,在服务器中的账户又 叫登录名(Login),因此访问服务器也称为登录服务器 。 服务器的登录名可以映射到数据库中成为数据库用户。 一个登录名可以映射多个数据库用户,而一个用户只能映 射一个登录名。
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
⑵ 在“数据库角色-新建” 对话框中,默认选择“常规”选
择页。在此页可以定义新数据库角色。 ⑶ 一般来说完成“常规”页的设置,数据库角色即可建立。 ⑷ 单击“确定”按钮,即可创建新的数据库角色。
SQL Server 2008
安全对象范围 安全对象列表
服务器 数据库 架构
端点、登录用户、数据库
用户、角色、应用程序角色、程序集、消息类型、 路由、服务、远程服务绑定、 全文目录、证书、非对称密钥、对称密钥、约定、 架构
类型、XML 架构集合、对象
聚合、约束、函数、过程、队列、统计信息、同义词、
数据库实用技术
基本概念
用户、数据库用户、账户、账号、登录名和密码。
数据库实用技术
角色管理
2.查看或设置数据库public角色的权限:
第十一章 数据库的安全性管理
⑴ 在对象资源管理器 中,依次展开“数据 库”→“stusystem” →“安全性”→“角 色”→“数据库角色” 节点,选择“public”, 右击选择“属性”命令, 打开“数据库角色属性” 对话框。 ⑵ 在“数据库角色属 性”对话框。在“安全 对象”页中,可以查看 当前public角色的权限 并可根据需要进行修改, 如左图所示。
数据库实用技术
角色管理
11.2.3 应用程序角色
数据库可为多个应用程序而存在。 不同的应用程序对同一数据库有不同的可访问范围,因此有 了应用程序角色的概念。 例如,对一个计费系统数据库,同时被客户关系管理系统和 网上营业厅系统访问,这些系统都拥有自己关注的数据信息, 也存在彼此之间不可访问的信息。 这就是两个不同的应用程序角色。
SQL Server 2008
数据库实用技术
权限管理
11.3.2 设置权限
利用SSMS设置权限:
第十一章 数据库的安全性管理
以对stusystem数据库用户Banana_Anna的设置权限为例, 操作步骤如下:
SQL Server 2008
数据库实用技术
角色管理
1.固定数据库角色的权限说明:
第十一章 数据库的安全性管理
db_accessadmin:可以管理登录名对该数据库的访问。 db_backupoperator:可以备份数据库。 db_datareader:可以从所有用户定义表中读取所有数据。 db_datawriter:可以对所有用户定义表进行添加、删除或更改数 据。 db_ddladmin:可以在该数据库中执行任何DDL命令。 db_denydatareader:不能从用户表中读取数据。 db_denydatawriter:不能对用户表执行添加、修改或删除数据。 db_owner:可以执行数据库的所有活动,在该数据库中拥有全部 权限。 db_securityadmin:可以修改角色成员身份和管理权限。 public:可以看到任何由拥有公共或完整权限的用户所创建的数据 库对象。每个数据库用户都属于public数据库角色。 只有public角色的权限可以根据需要修改。
bulkadmin:可以运行 Bulk Insert语句。
diskadmin:可以管理磁盘文件。 dbcreator:可以创建、更改、删除和还原任何数据库。
public:拥有查看数据库权限,但不能对其做修改。
前面8个服务器角色的权限是系统预先设定好的,不能更改,只 有public角色的权限可以根据需要修改。
数据库实用技术
基本概念
角色(roles)。 角色是SQL Server 2008中管理权限相近的安全账 户的集合,相当于Windows域中的组。
权限。 权限是SQL Server 2008安全性的最后一个级别, 实际上是安全机制的设计者分配给某一个用户( 或角色)访问数据库时,对数据对象的可以进行 的操作集合。
第二次认证:
第三次认证:
SQL Server 2008
数据库实用技术
SQL Server 2008安全机制
服务器的安全机制 网络传输的安全机制 客户机的安全机制
身份验证 指定数据库 对象权限
登录
网络
用户 客户机 SQL Server 数据库 数据对象
数据库的安全机制
数据对象的安全机制
数据库实用技术
SQL Server 2008
数据库实用技术
11.3 权限管理
数据库权限
第十一章 数据库的安全性管理
用于控制对数据库对象的访问和语句执行。 数据库权限可分为数据库对象权限和数据库语句权限,主要 包括授予、撤销和拒绝管理。
授予权限(GRANT):允许用户或角色具有某种操作权限; 撤销权限(REVOKE):撤销以前授予或拒绝了的权限; 拒绝权限(DENY):拒绝给安全帐户授予权限,并且可以防 止安全帐户通过其组或角色成员身份继承权限。
第十一章 数据库的安全性管理
数据库实用技术
第十一章 数据库的安全性管理
1
2 3 4 5 数据库的安全机制 角色管理 权限管理 服务器登录名 数据库用户
SQL Server 2008
数据库实用技术
11.1 数据库的安全机制
第十一章 数据库的安全性管理
数据库的安全很重要,事实上它比数据库的设计、创建 和执行都要重要! 高铁售票网站瘫痪、信息泄露!
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
11.2.2 数据库角色
如果我们要查看stusystem的数据库角 色,可以在对象资源管理器中,通过依 次展开“数据 库”→“stusystem”→“安全 性”→“角色”→“数据库角色”节点, 看到这10种数据库角色,如左图所示。
SQL Server内部的三层安全级别:
1.SQL Server级的安全性
第一层是SQL Server服务器级别的安全性,即对登记帐号 的管理。
2.数据库级别的安全性
第二层安全性是数据库级别的安全性,即对数据库用户的管 理。 第三层安全性是数据库对象级别的安全性,即对用户的权限 管理。
SQL Server 2008
数据库实用技术
11.3.1 权限类型
对象 数据库 权限类型 创建操作, 修改操作, 备份操作
权限管理
第十一章 数据库的安全性管理
根据操作的对象不同,权限的类型也不相同
权限列举 CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE FUNCTION、CREATE PROCEDURE、 CREAATE TRIGGER,ALTER DATABASE、ALTER TABLE、ALTER VIEW、ALTER FUNCTION、ALTER PROCEDURE、ALTER TRIGGER,BACKUP DATABASE、 BACKUP LOG,CONNECT,CONTROL等。
表和视图
插入数据,更新数据, INSERT,UPDATE,DELETE,SELECT,REFERENCES 等。 删除数据,查询,引 用 执行,控制查看,定义 EXECUTE,CONTROL等。
存储过程
标量函数 表值函数
执行, 引用, 控制
EXECUTE,REFERENCES,CONTROL等。
插入数据,更新数据, INSERT,UPDATE,DELETE,SELECT, REFERENCES等。 删除数据,查询, 引用
安全管理
一个用户要对某一个数据库进行操作 ,必须同时满足两 个条件:
能连接到SQL Server服务器(连接权) 有执行对数据库操作的权限(访问权)
数据库Baidu Nhomakorabea用技术
安全管理
房子 (SQL Server)
用户
606 大门
授权
登录
数据库实用技术
安全对象
安全对象是 SQL Server 2008数据库引擎授权系统控制 对其进行访问的资源。 通过创建可以为自己设置安全性的名为“范围”的嵌套 层次结构,可以将某些安全对象包含在其他安全对象中。 安全对象范围包括服务器、数据库、架构和对象。
SQL Server 2008
3.数据库对象级别的安全性
数据库实用技术
数据库的安全机制
第十一章 数据库的安全性管理
用户对SQL Server数据库中的数据进行访问及操作, 必须经过三次认证:
第一次认证:
验证用户是否具有连接到该SQL Server数据库服务器的资 格。 当用户访问数据库时,必须验证用户是否是该数据库的合法 用户。 当用户访问数据库中的数据对象时,验证用户是否具有引用 和操作权限。
数据库实用技术
11.2 角色管理
服务器角色
数据库角色
应用程序角色
SQL Server 2008
数据库实用技术
11.2 角色管理
第十一章 数据库的安全性管理
11.2.1 服务器角色
SQL Server 2008提供了9种固定的服 务器角色,用户不能自己创建服务器 角色。 可以在对象资源管理器中,通过依次 展开“安全性”→“服务器角色”节 点,看到这9种服务器角色,如左图 所示。
数据库的安全性包括两个方面的含义:
要保证具有数据访问权限的用户能够登录到数据库服务器 上,并且能够访问数据以及对数据库对象实施各种权限范 围内的操作; 要防止所有的非授权用户的非法操作。
SQL Server 2008
数据库实用技术
数据库的安全机制
第十一章 数据库的安全性管理
SQL Server 2008的安全性管理是建立在安全身份验证 和访问权限机制上。
SQL Server 2008
数据库实用技术
角色管理
3.新建数据库角色:
第十一章 数据库的安全性管理
例如:要在数据库stusystem中新建一个数据库角色。 具体步骤如下:
• ⑴ 在对象资源管理器中,依次展开“数据库”→“stusystem” →“安全性”→“角色”节点,选择 “数据库角色”,右击,选 择“新建数据库角色”命令,打开“数据库角色-新建”对话框, 如下图所示。
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
服务器角色
1.固定服务器角色的权限说明:
sysadmin:可以在服务器上执行任何操作。 Serveradmin:可以更改服务器范围的配置选项和关闭服务器。 securityadmin:可以管理登录名及其属性。 processadmin:可以终止在SQL Server实例中运行的进程。 setupadmin:可以添加和删除链接服务器。
SQL Server 2008
数据库实用技术
角色管理
2.查看和设置服务器public角色的权限:
第十一章 数据库的安全性管理
⑴ 在对象资源管理器中,依次展开“安全性”→“服务器角色” 节点,选择“public”,右击,选择“属性”。 ⑵ 在“服务器角色属性”对话框的“权限”页中,可以查看当前 public角色的权限并可根据需要进行修改,如下图所示。
第十一章 数据库的安全性管理
SQL Server 2008
数据库实用技术
角色管理
创建应用程序角色:
第十一章 数据库的安全性管理
【例12-1】在stusystem中创建一个应用程序角色 “student_role”。 具体步骤如下: • ⑴ 在对象资源管理器中, 依次展开“数据 库”→“stusystem” →“安全性”→“角色” 节点,选择 “应用程序角 色”,右击选择“新建应 用程序角色”命令,打开 对话框。 • ⑵ 在“应用程序角色-新建” 对话框的“常规”页中添 加角色名称 “student_role”,并输 入密码等信息。 • ⑶ 单击“确定”按钮,即 可创建新的应用程序角色。
用户是指能够在SQL Server 2008安全机制下,访问数据 库对象中的数据的操作员或客户。用户若要访问数据库对 象,必须获得管理员分配的账号和密码。 从SQL Server 2008管理系统的角度来看,用户就是一组 匹配的账户和密码。 账户和账号是一个概念的不同说法,在服务器中的账户又 叫登录名(Login),因此访问服务器也称为登录服务器 。 服务器的登录名可以映射到数据库中成为数据库用户。 一个登录名可以映射多个数据库用户,而一个用户只能映 射一个登录名。
SQL Server 2008
数据库实用技术
角色管理
第十一章 数据库的安全性管理
⑵ 在“数据库角色-新建” 对话框中,默认选择“常规”选
择页。在此页可以定义新数据库角色。 ⑶ 一般来说完成“常规”页的设置,数据库角色即可建立。 ⑷ 单击“确定”按钮,即可创建新的数据库角色。
SQL Server 2008
安全对象范围 安全对象列表
服务器 数据库 架构
端点、登录用户、数据库
用户、角色、应用程序角色、程序集、消息类型、 路由、服务、远程服务绑定、 全文目录、证书、非对称密钥、对称密钥、约定、 架构
类型、XML 架构集合、对象
聚合、约束、函数、过程、队列、统计信息、同义词、
数据库实用技术
基本概念
用户、数据库用户、账户、账号、登录名和密码。