数据库的安全管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第14章数据库的安全管理教学内容1、SQLServer的安全机制2、登录账号管理3、数据库用户管理4、角色管理5、权限管理第14章数据库的安全管理教学目的与要求了解SQLServer的安全机制与身份验证模式;理解登录账号与数据库用户的区别;了解服务器角色与数据库角色;掌握语句权限与对象权限的管理;第14章数据库的安全管理重点身份验证模式;登录账号、数据库用户;对象权限、语句权限;难点GRANT、REVOKE、DENY1、SQLServer的安全机制SQLServer的安全性是建立在身份验证和访问许可两种安全机制上的;身份验证用来确定登录SQLServer的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQLServer的权限通过身份验证并不代表其能够访问SQLServer中的数据库对象访问许可用来指定登录用户可以使用的数据库对象(如表、视图、存储过程、函数等)以及可以对这些对象执行的操作1、SQLServer的安全机制SQLServer的安全机制主要包括三个等级服务器级别的安全性主要通过登录账号进行控制,要想访问一个数据库服务器,必须拥有一个登录账号,登录账号可以是windows账号或组,也可以是SQLServer的登录账号;登录账号可以属于相应的服务器角色;数据库级别的安全性主要通过数据库用户进行控制,要想访问一个数据库,必须拥有该数据库的一个用户,数据库用户是通过登录账号进行映射的,可以属于固定的数据库角色或自定义的数据库角色;数据对象级别的安全性通过设置数据对象的访问权限进行控制的;1、SQLServer的安全机制SQLServer的安全机制主要包括三个等级1、SQLServer的安全机制两种身份验证模式两种身份验证模式:Windows身份验证和混合验证(即Windows验证或SQLServer验证)Windows身份验证使用Windows操作系统的安全机制验证用户身份,只要用户能够通过Windows用户账号验证,即可连接到SQLServer而不再进行身份验证混合验证对于可信任连接用户(由Windows验证),系统直接采用Windows的身份验证机制否则采用SQLServer身份验证模式,用户在连接SQLServer时必须提供登录名和密码,这些登陆信息存储在系统表syslogins中,与Windows的登陆帐号无关1、SQLServer的安全机制身份验证模式设置2、登录账号管理登录账号是服务器级用户访问数据库系统的标识为了访问SQLServer系统,用户必须提供正确的登录账号,这些登录账号既可以是Windows登录账号,也可以是SQLServer登录账号,但它必须是符合标识符规则的惟一名字登录账号的信息是系统信息,存储在master数据库的sysxlogins系统表中,用户如需要有关登录账号的信息可以到该表中查询2、登录账号管理查看登录账号2、登录账号管理---使用SSMS管理登录账号添加一个WindowsNT用户或用户组例1:增加windows用户“WTQ-PC\Test”2、登录账号管理---使用SSMS管理登录账号添加一个WindowsNT用户或用户组例1(续):增加windows用户“WTQ-PC\Test”2、登录账号管理---使用SSMS管理登录账号添加一个WindowsNT用户或用户组例1(续):增加windows用户“WTQ-PC\Test”2、登录账号管理---使用SSMS管理登录账号添加一个SQLServer用户例2:增加SQLServer用户,用户名sql,密码pwd2、登录账号管理---使用SSMS管理登录账号添加一个SQLServer用户例2(续):增加SQLServer用户,用户名sql,密码pwd2、登录账号管理---使用SSMS管理登录账号修改登录账号例3:修改登录账号“sql”的属性2、登录账号管理---使用SSMS管理登录账号修改登录账号例3(续):修改登录账号“sql”的属性2、登录账号管理---使用SSMS管理登录账号修改登录账号例3(续):修改登录账号“sql”的属性2、登录账号管理---使用SSMS管理登录账号修改登录账号例3(续):修改登录账号“sql”的属性2、登录账号管理---使用SSMS管理登录账号修改登录账号例3(续):修改登录账号“sql”的属性2、登录账号管理---使用SSMS管理登录账号删除登录账号例4:删除登录账号“WTQ-PC\Test”2、登录账号管理---使用T-SQL命令管理登录账号添加一个WindowsNT用户或用户组例5:增加windows用户“WTQ-PC\Test”,默认数据库为DBS2、登录账号管理---使用T-SQL命令管理登录账号添加一个SQLServer用户例6:增加SQLServer用户,用户名sql,密码pwd,默认数据库为DBS2、登录账号管理---使用T-SQL命令管理登录账号修改登录账号例7:修改登录账号“sql”的属性2、登录账号管理---使用T-SQL命令管理登录账号删除登录账号例8:删除Windows登录账号“WTQ-PC\Test”例9:删除SQLServer登录账号“sql”3、数据库用户管理数据库用户登录账号登录成功后,如果想要操作数据库,必须有一个数据库用户账号,然后为这个数据库用户设置某种角色,才能进行相应的操作;数据库用户可以与登录账号相同,也可以不相同;每个登录帐号在一个数据库中只能有一个用户帐号,但每个登录帐号可以在不同的数据库中各有一个用户帐号。如果在新建登录帐号过程中,指定它对某个数据库具有存取权限,则在该数据库中将自动创建一个与该登录帐号同名的用户帐号;3、数据库用户管理登录账号与数据库用户的区别一个合法的登录账号只表明该账号通过了NT认证或SQLServer认证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作只有当其同时拥有了数据库用户账号后,才能够访问相应的数据库一个登录账号总是与一个或多个数据库用户账号(这些账号必须分别存在相异的数据库中)相对应,这样才可以访问数据库例如,登录账号sa自动与每一个数据库用户dbo相关联3、数据库用户管理创建数据库用户例10:在数据库DBS中创建数据库用户3、数据库用户管理创建数据库用户例10(续):在数据库DBS中创建数据库用户3、数据库用户管理创建数据库用户例10(续):在数据库DBS中创建数据库用户3、数据库用户管理修改数据库用户例11:修改数据库DBS中数据库用户sql3、数据库用户管理删除数据库用户例12:删除数据库DBS中数据库用户sql4、角色管理利用角色,SQLServer管理者可以将某些用户设置为某一角色,这样只对角色进行权限设置便可实现对所有用户权限的设置,大大减少了管理员的工作量;“角色”类似于MicrosoftWindows操作系统中的“组”SQLServer中有两种角色固有服务器角色数据库角色固有数据库角色应用程序角色4、角色管理---固有服务器角色服务器级角色也称为“固定服务器角色”,因为用户不能删除,也不能创建新的服务器级角色;服务器级角色的权限作用域为服务器范围。可以向服务器级角色中添加SQLServer登录名、Windows帐户和Windows组。固定服务器角色的每个成员都可以向其所属角色添加其他登录名。4、角色管理---固有服务器角色4、角色管理---固有服务器角色sysadmin:可以在服务器上执行任何活动;Serveradmin:可以更改服务器范围的配置选项和关闭服务器securityadmin:可以管理登录名及其属性;processadmin:可以终止在SQLServer实例中运行的进程setupadmin:可以添加和删除链接服务器;bulkadmin:可以运行BULKINSERT语句;diskadmin:用于管理磁盘文件;dbcreator:可以创建、更改、删除和还原任何数据库;每个SQLServer登录名都属于public服务器角色;4、角色管理---固有数据库角色固定数据库角色是在数据库级别定义的,并且存在于每个数据库中;一个数据库角色只在其所在的数据库中有效,对其他数据库无效;可以向数据库级角色中添加任何数据库帐户和其他SQLServer角色;用户不能删除固有的数据库角色;4、角色管理---固定数据库角色4、角色管理---固定数据库角色db_owner:可以执行数据库的所有配置和维护活动,还可以删除数据库;db_securityadmin:可以修改角色成员身份和管理权限;db_accessadmin:可以为Windows登录名、Windows组和SQLServer登录名添加或删除数据库访问权限;db_backupoperator:可以备份数据库;db_ddladmin:可以在数据库中运行任何数据定义语言(DDL)命令db_datawriter:可以在所有用户表中添加、删除或更改数据;db_datareader:可以从所有用户表中读取所有数据;db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据;db_denydatareader:不能读取数据库内用户表中的任何数据;每个数据库用户都属于public数据库角色;4、角色管理---应用程序角色应用程序角色是一种比较特殊的由用户定义的数据库角色如果想让某些用户只能通过特定的应用程序间接地存取数据库中的数据,而不是直接地存取数据库数据时,就应该考虑使用应用程序角色;应用程序角色默认情况下不包含任何成员,且是非活动的必须为应用程序角色设计一个密码以激活它;5、权限管理许可(权限)用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作;在SQLServer中包括三种类型的许可:对象许可、语句许可和隐含许可;5、权限管理---对象许可表示对特定的数据库对象,即表、视图、字段和存储过程的操作许可;它决定了能对表、视图、存储过程等执行哪些操作(如UPDATE、DELETE、INSERT、EXECUTE);如果用户想要对某一对象进行操作,其必须具有相应的操作的权限;例如,当用户要成功修改表中数据时,则前提条件是已被授予表的UPDATE权限;5、权限管理---对象许可例13:为数据库DBS中的用户sql授予对Student表的select、insert权限,拒绝update、delete权限5、权限管理---语句许可指定用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程等;还包括备份数据库和事务日志的权限;5、权限管理---语句许可例14:为数据库DBS中的用户sql授予备份数据库的权限,拒绝创建表的权限5、权限管理---隐含许可系统自行预定义而不需要授权就有的权限,包括固定服务器角色、固定数据库角色和数据库对象所有者所拥有的权限;例如:服务器角色sysadmin的成员可以在整个服务器范围内从事任何操作,数据库拥有者db_owner被授予了对其所创建的数据库的一切权限;5、权限管理---使用T-SQL语句管理权限GRANT授予权限DENY拒绝权限REVOKE撤销权限5、权限管理---使用T-SQL语句管理权限例15:将查询Student表的权限授予用户sql例16:将Student表全部操作权限授予用户sql例17:将SC表的查询权限授予所有用户例18:将查询Student表和修改Sname的权限授予用户sql5、权限管理---使用T-SQL语句管理权限例19:将对SC表的插入权限授予用户sql,允许sql再将此权限授予给其他用户例20:将数据库DBS中创建表的权限授予用户sql5、权限管理---使用T-SQL语句管理权限例21:撤销用户sql对Student表中Sname列的修改权限例22:撤销所有用户对SC表的查询权限例23:撤销用户sql对SC表的插入权限,同时撤销其授予其他用户的权限5、权限管理---使用T-SQL语句管理权限例24:拒绝用户sql对Course表的SELECT权限例25:拒绝用户sql对存储过程usp_Test的Execu

1 / 51
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功