《数据库安全管理ppt培训课件》由会员分享,可在线阅读,更多相关《数据库安全管理ppt培训课件(52页珍藏版)》请在金锄头文库上搜索。
1、数据库安全管理,2,项目七 ,SQL Server的身份验证模式 SQL Server的登录账户的管理 用户的管理角色管理和权限管理,学习目标,3,赵老师当了00电子商务班的班主任,他要能查到全校的课程信息以及本班学生的选课信息,如何让他有权查到这些信息。,提出问题,4,一个用户要对某一个数据库进行操作 ,必须同时满足两个条件:能连接到SQL Server服务器(连接权) 有执行该操作的权限(访问权),安全管理(1),5,安全管理(2),6,SQL Server两种验证模式,仅Windows 验证SQL Server和Windows的混合验证,7,当用户通过 Windows NT/2000 用
2、户帐户进行连接时,SQL Server 通过回叫 Windows NT /2000 以获得信息,重新验证帐户名和密码,并在syslogins表中查找该帐户,以确定该帐户是否有权限登录。在这种方式下,用户不必提供密码或登录名让SQL server验证。,Windows 身份验证模式,8,混合模式使用户能够通过 Windows 身份验证或 SQL Server 身份验证与 SQL Server 实例连接。 在SQL Server验证模式下,SQL Server在syslogins表中检测输入的登录名和密码。如果在syslogins表中存在该登录名,并且密码也是匹配的,那么该登录名可以登录到SQL
3、Server。否则,登录失败。在这种方式下,用户必须提供登录名和密码,让SQL server验证。,混合验证模式,9,使用企业管理器设置验证模式,打开企业管理器,展开服务器组,右击需要修改验证模式的服务器,再单击“属性”选项,出现SQL Server属性对话框。如图所示。,10,在SQL Server属性对话框单击“安全性” 选项卡,如图所示。,11,如果要使用Windows身份验证,选择“仅Windows”,如图所示;如果想使用混合认证模式,选择“SQL Server和Windows”。 在“审核级别”中选择在 SQL Server 错误日志中记录的用户访问 SQL Server的级别。如果
4、选择该选项,则必须停止并重新启动服务器审核才生效。SQL Server 2000默认的是“仅Windows”即Windows 身份验证,身份验证模式的修改后需要重新启动SQL Server服务才能生效。,12,登录管理,SQL Server 2000安装好之后,系统会自动产生两个登录账户: 本地管理员组(BUILTAdministrators)默认属于sysadmin角色中的成员,因此具有管理员权限。 系统管理员 (sa) 默认情况下,它指派给固定服务器角色sysadmin,并不能进行更改。,13,在Windows NT/2000 的用户或组可以访问数据库之前,必须给其授予连接到 SQL Se
5、rver 实例的权限。 使用企业管理器添加Windows登录账户 (1)打开企业管理器,展开服务器组,然后展开服务器。 (2)展开“安全性”,右击“登录”,然后单击“新建登录”选项。 (3)在“名称”框中,输入要被授权访问SQL Server的 Windows NT/2000 帐户(以计算机名(域名)用户名(组名)的形式),如图所示。,添加Windows登录,14,15,(4)在“身份验证”下,单击“Windows 身份验证”。 (5)在“数据库”中,单击用户在登录到 SQL Server 实例后所连接的默认数据库。在“语言”中,单击显示给用户的信息所用的默认语言。 (6)单击“确定”按钮。,
6、注意:授权一个Windows用户或组访问SQL Server,必须以这个用户登录到Windows后才能验证这个用户能否联接到SQL Server。授权用户或组访问SQL Server时,此Windows用户和组必须事先存在。,16,如果用户没有Windows账号, SQL Server 配置为在混合模式下运行,或SQL Server 实例正在 Windows 98 上运行,则可以创建SQL Server 登录账户。 使用企业管理器添加SQL Server登录账户 (1)打开企业管理器,展开服务器组,然后展开服务器。 (2)展开“安全性”,右击“登录”,然后单击“新建登录”选项。 (3)在“身份
7、验证”下,选择“SQL Server 身份验证”。,添加SQL Server登录,17,(4)在“名称”框中,输入SQL Server 登录的名称,在“密码”框中输入密码(可选),如图所示。,18,数据库用户管理,默认数据库用户 1数据库所有者 (DataBase Owmer ,dbo) dbo 是数据库的拥有者,拥有数据库中的所有对象,每个数据库都有dbo, sysadmin服务器角色的成员自动映射成dbo, 无法删除 dbo 用户,且此用户始终出现在每个数据库中。 通常,登录名sa映射为库中的用户dbo。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。
8、,19,2Guest用户 Guest 用户帐户允许没有用户帐户的登录访问数据库。 当登录名没有被映射到一个用户名上时,如果在数据库中存在Guest用户,登录名将自动映射成Guest,并获得对应的数据库访问权限。 Guest用户可以和其他用户一样设置权限,以可以增加和删除,但master和tempdb数据库中的Guest不能被删除。 默认情况下,新建的数据库中没有 Guest 用户帐户。,20,1使用企业管理器添加数据库用户 (1)打开企业管理器,展开服务器组,然后展开服务器。 (2)展开“数据库”文件夹,然后展开将授权用户或组访问的数据库。 (3)右击“用户”,然后单击“新建数据库用户”命令。
9、弹出“数据库用 户属性”对话框,如图所示。,创建数据库用户(1),(4)在“数据库用户属性”对话框的“登录名”框中键入或选择将被授权访问数据库的Windows或SQL Server登录名。在“用户名”中,输入在数据库中识别登录所用的用户名。在默认的情况下,它设置为登录名。(5)单击“确定”按钮,完成数据库用户的创建。,21,22,权限管理,权限类型 权限用来控制用户如何访问数据库对象。一个用户可以直接分配到权限,以可以作为一个角色的成员来间接的得到权限。一个用户可以同时属于具有不同权限的多个角色。权限分为:对象权限、语句权限、暗示性权限。,23,对象权限对象权限是指用户访问和操作数据库中表、视
10、图、存储过程等对象的权限。有五个不同的权限: 查询(select) 插入(insert) 更新(update) 删除(delete) 执行(execute) 前四个权限用于表和视图,执行只用于存储过程。,24,语句权限 语句权限是指用户创建数据库或在数据库中创建或修改对象、执行数据库或事务日志备份的权限。语句权限有:BACKUP DATABASEBACKUP LOGCREATE DATABASEDEFAULTCREATE FUNCTIONCREATE PROCEDURECREATE RULECREATE TABLECREATE VIEW,25,暗示性权限暗示性权限是指系统预定义角色的成员或数据
11、库对象所有者所拥有的权限。例如,sysadmin 固定服务器角色成员自动继承在 SQL Server 安装中进行操作或查看的全部权限。 数据库对象所有者还有暗示性权限,可以对所拥有的对象执行一切活动。,26,权限管理,权限管理操作 一个用户或角色的权限可以有三种存在的形式:授予(granted)拒绝(denied)废除(revoked)授予是赋予用户某权限; 拒绝是禁止用户的某权限; 废除是撤销以前授予或拒绝的权限。,27,使用企业管理器管理权限 对象权限可以从用户/角色的角度管理,即管理一个用户能对哪些对象执行哪些操作;也可以从对象的角度管理,即设置一个数据库对象能被哪些用户执行哪些操作。
12、用Transact_SQL语句管理权限 GRANT授予权限;DENY拒绝权限;REVOKE废除权限。,28,语句权限GRANT/DENY/REVOKE ALL | statement ,.n TO security_account ,.n 例如,给用户user1创建表的权限。 USE SALES GO GRANT CREATE TABLE TO user1,29,对象权限GRANT/DENY/REVOKE ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n )
13、 | ON stored_procedure | extended_procedure 例如,授予用户user1在salers表上的SELECT、UPDATE和INSERT权限。USE SALESGO GRANT SELECT,UPDATE,INSERT ON salers TO user1,30,解决问题,解决赵老师能查询本班学生的选课信息,Create view csel as Select stucou.stuno,couno,willorder from stucou,student,class Where stucou.stuno=student.stuno and student.
14、classno=class.classno and classname=00电子商务,步骤1.创建00电子商务班的选课信息视图,31,解决问题,步骤2.把访问该视图的权限授予赵老师,步骤3.验证赵老师能否访问视图,32,解决问题,赵老师能了解本班某课程的选课情况,步骤1.创建能查询本班指定课程选课信息的存储过程,create proc c_cou kc char(10) As Select stuno,couname,willorder from csel,course Where csel.couno=course.couno and Couname=kc,33,解决问题,步骤2.把执行该存
15、储过程的权限授予赵老师grant exec on c_cou to dbuserzhao,步骤3.验证赵老师能否执行存储过程,34,撤消权限,【例】撤消赵老师执行上面存储过程的权限,35,提出问题,假如学校新增10个班主任,他们都要在student表中添加、修改和删除学生,要个个设置权限,方便吗?,36,角色管理,角色是为了易于管理而按相似的工作属性对用户进行分组的一种方式。SQL Server中组是通过角色来实现的。 在SQL Server中角色分为服务器角色和数据库角色两种。服务器角色是服务器级的一个对象,只能包含登录名。数据库角色是数据库级的一个对象,只能包含数据库用户名。,37,固定服务器角色 描述Sysadmin 在 SQL Server 中执行任何活动。Serveradmin 配置服务器范围的设置。Setupadmin 添加和删除链接服务器,并执行某些系 统存储 过程(如 sp_serveroption)。Securityadmin 管理服务器登录。Processadmin 管理在 SQL Server 实例中运行的进程。Dbcreator 创建和改变数据库。Diskadmin 管理磁盘文件。bulkadmin 执行 BULK INSERT(大容量插入)语句。,