SlideShare a Scribd company logo
1 of 106
第 11 章  数据库的安全管理
本章内容 ,[object Object],[object Object],[object Object],[object Object],[object Object]
11.1  SQL Server  的安全机制 ,[object Object],[object Object],第 11 章  数据库的安全管理
11.1.1  身份验证 ,[object Object],[object Object],[object Object],11.1 SQL Server  的安全机制
SQL Server 身份验证模式  ,[object Object],[object Object],[object Object],11.1.1  身份验证
(2) 混合身份验证模式 ,[object Object],11.1.1  身份验证
身份验证内容 ,[object Object],11.1.1  身份验证
11.1.2  身份验证模式的设置  ,[object Object],[object Object],[object Object],11.1 SQL Server  的安全机制
[object Object],[object Object],11.1.2  身份验证模式的设置
通过编辑 SQL Server 注册属性来完成身份验证模式的设置 ,[object Object],[object Object],11.1.2  身份验证模式的设置
[object Object],[object Object],11.1.2  身份验证模式的设置
11.2  登录账号管理 ,[object Object],[object Object],[object Object],第 11 章  数据库的安全管理
11.2.1  创建登录账户 ,[object Object],[object Object],[object Object],11.2  登录账号管理
1.  通过 Windows 身份验证创建登录  ,[object Object],[object Object],11.2.1  创建登录账户
[object Object],11.2.1  创建登录账户
(2) 使用企业管理器将 Windows 2000 账号加入到 SQL Server 中,创建 SQL Server 登录 ,[object Object],[object Object],11.2.1  创建登录账户
[object Object],11.2.1  创建登录账户
[object Object],11.2.1  创建登录账户
对于已经创建的 Windows 用户或组,可以使用系统存储过程 sp_grantlogin 授予其登录 SQL Server 的权限。 ,[object Object],[object Object],[object Object],11.2.1  创建登录账户
例 11-1  使用系统存储过程 sp_grantlogin 将 Windows 用户 huang 加入 SQL Server 中。 ,[object Object],[object Object],[object Object],[object Object],11.2.1  创建登录账户
[object Object],[object Object],例 11-2  授予本地组 Users 中的所有用户连接 SQL Server 的权限。 11.2.1  创建登录账户
[object Object],2.  创建 SQL Server 登录 11.2.1  创建登录账户
[object Object],[object Object],(1) 使用企业管理器创建登录账户  11.2.1  创建登录账户
[object Object],[object Object],11.2.1  创建登录账户
[object Object],[object Object],11.2.1  创建登录账户
(2) 使用系统存储过程 sp_addlongin 创建登录 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.2.1  创建登录账户
[object Object],例 11-3  使用系统存储过程 sp_addlongin 创建登录,新登录名为“ ZG002” ,密码为“ 002” 默认数据库为“ Sales” 。 11.2.1  创建登录账户
[object Object],[object Object],例 11-4  创建没有密码和默认数据库的登录,登录名为“ ZG003” 。  11.2.1  创建登录账户
[object Object],[object Object],[object Object],3.  查看用户 11.2.1  创建登录账户
例 11-5  查看账户信息。 ,[object Object],[object Object],11.2.1  创建登录账户
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.2.2  修改登录账户 11.2  登录账号管理
11.2.3  删除登录账户  ,[object Object],[object Object],[object Object],[object Object],[object Object],11.2  登录账号管理
[object Object],[object Object],[object Object],[object Object],[object Object],2.  使用 Transact-SQL 语句删除登录账号 11.2  登录账号管理
[object Object],[object Object],[object Object],例 11-7  使用系统存储过程 sp_revokelogin 删除例 11-1 创建的 Windows 用户 'jsjx-yp uang' 的登录账号 11.2  登录账号管理
[object Object],[object Object],[object Object],[object Object],(2) 删除 SQL Server 登录 11.2  登录账号管理
11.3  数据库用户的管理  ,[object Object],[object Object],[object Object],[object Object],[object Object],第 11 章  数据库的安全管理
(4) 打开“数据库用户属性”对话框  ,[object Object],[object Object],11.3  数据库用户的管理
2.  使用系统存储过程创建数据库用户 ,[object Object],[object Object],[object Object],[object Object],11.3  数据库用户的管理
[object Object],例 11-9  使用系统存储过程在当前数据库中增加一个用户。 11.3  数据库用户的管理
[object Object],[object Object],[object Object],[object Object],[object Object],3.  删除数据库中的用户或组 11.3  数据库用户的管理
[object Object],例 11-10  使用系统存储过程在当前数据库中删除指定的用户。 11.3  数据库用户的管理
11.4  角色管理  ,[object Object],[object Object],[object Object],[object Object],第 11 章  数据库的安全管理
11.4.1  SQL Server 角色的类型 ,[object Object],[object Object],[object Object],[object Object],[object Object],11.4  角色管理
表 11-1  固定服务器角色 11.4.1 SQL Server 角色的类型 可执行 BULK INSERT 语句,但必须有 INSERT 权限。 bulkadmin 管理系统磁盘文件 Diskadmin 数据库创建者,可创建、更改和删除数据库。 Dbcreator 进程管理员,管理在 SQL Server 服务器中运行的进程。 processadmin  安全管理员,管理服务器登录标识、更改密码、 CREATE DATABASE 权限,还可以读取错误日志。 Securityadmin 设置管理员,添加和删除链接服务器,并执行某些系统存储过程。 Setupadmin 服务器管理员,具有对服务器设置和关闭的权限。 Serveradmin 系统管理员,可以在 SQL Server 服务器中执行任何操作 Sysadmin 权  限 角色名称
表 11-2  固定数据库角色 11.4.1 SQL Server 角色的类型 每个数据库用户都是 public 角色成员。因此,不能将用户、组或角色指派为 public 角色的成员,也不能删除 public 角色的成员。 public 不能读取数据库中任何表的内容。 db_denydatareader 不能对任何表进行增、删、修改操作。 db_denydatawriter 能对数据库中任何表执行 INSERT 、 UPDATE 、 DELETE 操作,但不能进行 SELECT 操作。 db_datawriter 能且仅能对数据库中任何表执行 SELECT 操作,从而读取所有表的信息。 db_datareader 执行数据库备份权限。 db_backupoperator 数据库 DDL 管理员,在数据库中创建、删除或修改数据库对象。 db_ddladmin 管理角色和数据库角色成员、对象所有权、语句执行权限、数据库访问权限。 db_securityadmin 数据库访问权限管理者,可添加或删除用户、组或登录标识。 db_accessadmin 数据库的所有者,可以执行任何数据库管理工作,可以对数据库内的任何对象进行任何操作,如删除、创建对象,将对象权限指定给其他用户。该角色包含以下各角色的所有权限。 db_owner 权  限 角色名称
2.  用户定义数据库角色 ,[object Object],[object Object],11.4.1 SQL Server 角色的类型
11.4.2  固定服务器角色管理  ,[object Object],[object Object],11.4  角色管理
[object Object],[object Object],例 11-11  使用企业管理器将登录 ZG001 添加为固定服务器角色“ Database Creators” 成员。 11.4.2  固定服务器角色管理
(3) 在右窗格中,鼠标右键单击服务器角色“ Database Creators” 项,在弹出的快捷菜单中选择“属性”项,打开“服务器角色属性”对话框  11.4.2  固定服务器角色管理
(4) 单击“服务器角色属性”对话框的“添加”按钮,打开“添加成员”对话框。在“选择要添加的登录”列表中选择登录“ ZG001” ,单击“确定”按钮完成操作。 11.4.2  固定服务器角色管理
固定服务器角色成员的添加 ,[object Object],[object Object],11.4.2  固定服务器角色管理
[object Object],[object Object],11.4.2  固定服务器角色管理
sp_addsrvrolemember 用于添加固定服务器角色成员 ,[object Object],[object Object],[object Object],[object Object],11.4.2  固定服务器角色管理
[object Object],例 11-12  使用系统存储过程将登录 ZG002 添加为固定服务器角色 sysadmin 的成员。 11.4.2  固定服务器角色管理
[object Object],[object Object],[object Object],[object Object],2.  删除固定服务器角色成员 11.4.2  固定服务器角色管理
[object Object],例 11-13  使用系统存储过程从固定服务器角色 sysadmin 中删除登录 ZG002 。 11.4.2  固定服务器角色管理
[object Object],[object Object],[object Object],[object Object],3.  查看固定服务器角色信息 11.4.2  固定服务器角色管理
[object Object],[object Object],[object Object],sp_helpsrvrolemember 查看固定服务器角色成员 11.4.2  固定服务器角色管理
[object Object],[object Object],[object Object],例 11-14  查看固定服务器角色 sysadmin 及其成员的信息。 11.4.2  固定服务器角色管理
[object Object],[object Object],[object Object],[object Object],[object Object],11.4.3  数据库角色管理 11.4  角色管理
[object Object],[object Object],[object Object],[object Object],[object Object],例 11-15  向数据库 Sales 添加 Windows 用户“ jsjx-yph001” 。 11.4.3  数据库角色管理
[object Object],例 11-16  向数据库添加例 11-3 创建的 SQL Server 用户 ZG002 为 db_owner 角色成员。 11.4.3  数据库角色管理
[object Object],[object Object],[object Object],[object Object],2.  删除数据库角色成员 11.4.3  数据库角色管理
[object Object],例 11-17  删除数据库角色中的用户。 11.4.3  数据库角色管理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],3.  查看数据库角色及其成员信息 11.4.3  数据库角色管理
例 11-18  查看当前数据库中所有用户及 db_owner 数据库角色的信息。 ,[object Object],[object Object],11.4.3  数据库角色管理
11.4.4  用户定义数据库角色 ,[object Object],[object Object],11.4  角色管理
例 11-19  使用企业管理器创建用户定义数据库角色。 ,[object Object],[object Object],11.4.4  用户定义数据库角色
[object Object],[object Object],11.4.4  用户定义数据库角色
例 11-20  使用企业管理器删除用户定义数据库角色“ wang” 。 ,[object Object],[object Object],[object Object],11.4.4  用户定义数据库角色
使用 sp_addrole 和 sp_droprole 可以创建和删除用户定义数据库角色 ,[object Object],[object Object],[object Object],11.4.4  用户定义数据库角色
[object Object],[object Object],[object Object],例 11-21  使用系统存储过程创建名为“ role01” 的用户定义数据库角色到 Sales 数据库中。 11.4.4  用户定义数据库角色
[object Object],[object Object],[object Object],例 11-22  使用系统存储过程删除数据库 Sales 中名为“ role01” 的用户定义数据库角色。 11.4.4  用户定义数据库角色
[object Object],2.  添加和删除用户定义数据库角色成员 11.4.4  用户定义数据库角色
例 11-23  使用企业管理器将成员添加到用户定义数据库角色 ZG001 中。 ,[object Object],[object Object],11.4.4  用户定义数据库角色
[object Object],[object Object],11.4.4  用户定义数据库角色
例 11-24  使用系统存储过程将 ZG002 添加为 Sales 数据库的 role01 角色的成员。 ,[object Object],[object Object],[object Object],11.4.4  用户定义数据库角色
[object Object],[object Object],[object Object],[object Object],例 11-25  将 SQL Server 登录账号“ ZG003” 添加到 Sales 数据库中,其用户名为“ ZG003” ,然后再将 ZG003 添加为该数据库的 role01 角色的成员。 11.4.4  用户定义数据库角色
11.5  权限管理  ,[object Object],[object Object],[object Object],[object Object],第 11 章  数据库的安全管理
11.5.1  权限的种类 ,[object Object],[object Object]
1.  对象权限 ,[object Object],11.5.1  权限的种类
表 11-3  对象及作用的操作 11.5.1  权限的种类 SELECT 、 UPDATE 列 EXECUTE 存储过程 SELECT 、 INSERT 、 UPDATE 、 DELETE 视图 SELECT 、 INSERT 、 UPDATE 、 DELETE 、 REFERANCES 表 操  作 对  象
2.  语句权限 ,[object Object],11.5.1  权限的种类
表 11-4  语句权限及其作用 11.5.1  权限的种类 备份日志 BACKUP LOG 备份数据库 BACKUP DATABASE 在数据库中创建函数 CREATE FUNCTION 在数据库中创建规则 CREATE RULE 在数据库中创建存储过程 CREATE PROCEDURE 在数据库中创建默认对象 CREATE DEFAULT 在数据库中创建视图 CREATE VIEW 在数据库中创建表 CREATE TABLE 创建数据库 CREATE DATABASE 作  用 语  句
3.  隐含权限 ,[object Object],[object Object],11.5.1  权限的种类
11.5.2  授予权限 ,[object Object],[object Object],[object Object],[object Object],[object Object]
2.  使用企业管理器授予用户或角色对象权限 ,[object Object],[object Object],11.5.2  授予权限
(3) 在“表属性”对话框中单击“权限”按钮,打开“对象属性”对话框。 11.5.2  授予权限
[object Object],[object Object],[object Object],11.5.2  授予权限
3.  使用 Transact-SQL 语句 GRANT 授予用户或角色权限 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5.2  授予权限
[object Object],[object Object],11.5.2  授予权限
例 11-26  使用 GRANT 语句给用户 ZG001 授予 CREATE TABLE  的权限。 ,[object Object],[object Object],[object Object],[object Object],11.5.2  授予权限
例 11-27  授予角色和用户对象权限。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5.2  授予权限
例 11-28  在当前数据库 Sales 中给 public 角色赋予对表 employee 中 employee_id 、 employee_name 字段的 SELECT 权限。 ,[object Object],[object Object],[object Object],[object Object],[object Object],11.5.2  授予权限
11.5.3  禁止与撤消权限 ,[object Object],[object Object],11.5  权限管理
1.  禁止权限 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
例 11-29  使用 DENY 语句禁止用户 ZG002 使用 CREATE VIEW 语句。 ,[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
例 11-30  给 pubic 角色授予表 employee 上的 SELETE 权限,再拒绝用户 ZG001 、 ZG002 的特定权限,以使这些用户没有对 employee 表的操作权限。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
2.  撤消以前授予或拒绝的权限 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
例 11-31  使用 REVOKE 语句撤消用户 ZG001 对创建表操作的权限。 ,[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
例 11-32  撤消以前 ZG001 授予或拒绝的 SELECT 权限。 ,[object Object],[object Object],[object Object],11.5.3  禁止与撤消权限
11.5.4  查看权限 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],11.5  权限管理
例 11-33  查询表的权限。 ,[object Object],[object Object],[object Object],[object Object],11.5.4  查看权限
例 11-34  查询由某个特定的用户授予的权限。 ,[object Object]
例 11-35  仅查询语句权限。 ,[object Object],[object Object],[object Object],11.5.4  查看权限
本章小结 (1) 身份验证是指当用户访问数据库时,系统对该用户的账号和口令的确认过程。 SQL Server 的身份验证包括 3 种模式: SQL Server 身份验证模式、 Windows 身份验证模式、混合验证模式。可以使用企业管理器进行身份验证模式的设置。 (2) 登录账户是用户建立自己与 SQL Server 的连接途径,可以使用企业管理器和 Transact-SQL 语句建立和删除登录账号。 (3) 只有添加为数据库用户才有访问数据库的特定权限,使用企业管理器和 Transact-SQL 语句可以建立和删除数据库用户。 (4) 角色是进行数据库权限管理的管理单位。角色分为固定角色和用户定义数据库角色,固定角色是系统预定义的,不可添加、修改与删除,用户定义数据库角色可以通过企业管理和 Transact-SQL 语句建立和删除。 (5) 权限是用户对数据库中对象的使用及操作的权利,权限分为对象权限、语句权限和隐含权限 3 种。通过企业管理和 Transact-SQL 语句可以进行权限的管理。

More Related Content

More from hanmo1988

第10章 (续)事务
第10章 (续)事务 第10章 (续)事务
第10章 (续)事务
hanmo1988
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计
hanmo1988
 
第9章 transact sql程序设计
第9章   transact sql程序设计第9章   transact sql程序设计
第9章 transact sql程序设计
hanmo1988
 
第7章 索引和视图
第7章 索引和视图第7章 索引和视图
第7章 索引和视图
hanmo1988
 
第6章 数据查询
第6章 数据查询第6章 数据查询
第6章 数据查询
hanmo1988
 
第5章 sql server表的管理
第5章 sql server表的管理第5章 sql server表的管理
第5章 sql server表的管理
hanmo1988
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理
hanmo1988
 
第2章 关系数据库基本原理
第2章  关系数据库基本原理第2章  关系数据库基本原理
第2章 关系数据库基本原理
hanmo1988
 

More from hanmo1988 (9)

第10章 (续)事务
第10章 (续)事务 第10章 (续)事务
第10章 (续)事务
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计
 
第9章 transact sql程序设计
第9章   transact sql程序设计第9章   transact sql程序设计
第9章 transact sql程序设计
 
第7章 索引和视图
第7章 索引和视图第7章 索引和视图
第7章 索引和视图
 
第6章 数据查询
第6章 数据查询第6章 数据查询
第6章 数据查询
 
第5章 sql server表的管理
第5章 sql server表的管理第5章 sql server表的管理
第5章 sql server表的管理
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理
 
第2章 关系数据库基本原理
第2章  关系数据库基本原理第2章  关系数据库基本原理
第2章 关系数据库基本原理
 
第1章 数据库系统概论
第1章   数据库系统概论第1章   数据库系统概论
第1章 数据库系统概论
 

第11章 数据库的安全管理

  • 1. 第 11 章 数据库的安全管理
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. 表 11-1 固定服务器角色 11.4.1 SQL Server 角色的类型 可执行 BULK INSERT 语句,但必须有 INSERT 权限。 bulkadmin 管理系统磁盘文件 Diskadmin 数据库创建者,可创建、更改和删除数据库。 Dbcreator 进程管理员,管理在 SQL Server 服务器中运行的进程。 processadmin 安全管理员,管理服务器登录标识、更改密码、 CREATE DATABASE 权限,还可以读取错误日志。 Securityadmin 设置管理员,添加和删除链接服务器,并执行某些系统存储过程。 Setupadmin 服务器管理员,具有对服务器设置和关闭的权限。 Serveradmin 系统管理员,可以在 SQL Server 服务器中执行任何操作 Sysadmin 权 限 角色名称
  • 45. 表 11-2 固定数据库角色 11.4.1 SQL Server 角色的类型 每个数据库用户都是 public 角色成员。因此,不能将用户、组或角色指派为 public 角色的成员,也不能删除 public 角色的成员。 public 不能读取数据库中任何表的内容。 db_denydatareader 不能对任何表进行增、删、修改操作。 db_denydatawriter 能对数据库中任何表执行 INSERT 、 UPDATE 、 DELETE 操作,但不能进行 SELECT 操作。 db_datawriter 能且仅能对数据库中任何表执行 SELECT 操作,从而读取所有表的信息。 db_datareader 执行数据库备份权限。 db_backupoperator 数据库 DDL 管理员,在数据库中创建、删除或修改数据库对象。 db_ddladmin 管理角色和数据库角色成员、对象所有权、语句执行权限、数据库访问权限。 db_securityadmin 数据库访问权限管理者,可添加或删除用户、组或登录标识。 db_accessadmin 数据库的所有者,可以执行任何数据库管理工作,可以对数据库内的任何对象进行任何操作,如删除、创建对象,将对象权限指定给其他用户。该角色包含以下各角色的所有权限。 db_owner 权 限 角色名称
  • 46.
  • 47.
  • 48.
  • 49. (3) 在右窗格中,鼠标右键单击服务器角色“ Database Creators” 项,在弹出的快捷菜单中选择“属性”项,打开“服务器角色属性”对话框 11.4.2 固定服务器角色管理
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. 表 11-3 对象及作用的操作 11.5.1 权限的种类 SELECT 、 UPDATE 列 EXECUTE 存储过程 SELECT 、 INSERT 、 UPDATE 、 DELETE 视图 SELECT 、 INSERT 、 UPDATE 、 DELETE 、 REFERANCES 表 操 作 对 象
  • 83.
  • 84. 表 11-4 语句权限及其作用 11.5.1 权限的种类 备份日志 BACKUP LOG 备份数据库 BACKUP DATABASE 在数据库中创建函数 CREATE FUNCTION 在数据库中创建规则 CREATE RULE 在数据库中创建存储过程 CREATE PROCEDURE 在数据库中创建默认对象 CREATE DEFAULT 在数据库中创建视图 CREATE VIEW 在数据库中创建表 CREATE TABLE 创建数据库 CREATE DATABASE 作 用 语 句
  • 85.
  • 86.
  • 87.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106. 本章小结 (1) 身份验证是指当用户访问数据库时,系统对该用户的账号和口令的确认过程。 SQL Server 的身份验证包括 3 种模式: SQL Server 身份验证模式、 Windows 身份验证模式、混合验证模式。可以使用企业管理器进行身份验证模式的设置。 (2) 登录账户是用户建立自己与 SQL Server 的连接途径,可以使用企业管理器和 Transact-SQL 语句建立和删除登录账号。 (3) 只有添加为数据库用户才有访问数据库的特定权限,使用企业管理器和 Transact-SQL 语句可以建立和删除数据库用户。 (4) 角色是进行数据库权限管理的管理单位。角色分为固定角色和用户定义数据库角色,固定角色是系统预定义的,不可添加、修改与删除,用户定义数据库角色可以通过企业管理和 Transact-SQL 语句建立和删除。 (5) 权限是用户对数据库中对象的使用及操作的权利,权限分为对象权限、语句权限和隐含权限 3 种。通过企业管理和 Transact-SQL 语句可以进行权限的管理。