[精选]XXXX(第2版)第15章_SQL_Server_XXXX数据库的安全性.pptx
《[精选]XXXX(第2版)第15章_SQL_Server_XXXX数据库的安全性.pptx》由会员分享,可在线阅读,更多相关《[精选]XXXX(第2版)第15章_SQL_Server_XXXX数据库的安全性.pptx(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1515章章 SQL Server 2023SQL Server 2023数据库的数据库的平安性和完整性管理平安性和完整性管理15.1 15.1 数据库平安性概述数据库平安性概述lSQL Server的平安性管理是建立在认证authentication和访问许可permission这两种机制上的。l认证是指确定登录SQL Server的用户的登录账号和密码是否正确,以此来验证其是否具有连接SQL Server的权限。l但是,通过认证并不代表能够访问SQL Server中的数据。用户只有在获取访问数据库的权限之后,才能够对效劳器上的数据库进行权限许可下的各种操作。l用户访问数据库权限的设置是
2、通过用户账号来实现的。角色简化了平安性管理。15.1 15.1 数据库平安性概述数据库平安性概述l所以在SQL Server的平安模型中包括以下几局部:l SQL Server身份验证;l 登录账户;l 数据库用户;l 角色;l 权限。15.1 15.1 数据库平安性概述数据库平安性概述l15.1.1 15.1.1 身份验证简介身份验证简介lSQL Server支持两种模式的身份验证:Windows验证模式、SQL Server 和Windows 混合验证模式。lWindows验证模式比起SQL Server验证模式来有许多优点。Windows身份验证比SQL Server身份验证更加平安;使
3、用Windows身份验证的登录账户更易于管理;用户只需登录Windows之后就可以使用SQL Server,只需要登录一次。l在混合验证模式下,Windows验证和SQL Server验证这两种验证模式都是可用的。对于SQL Server验证模式,用户在连接SQL Server时必须提供登录名和登录密码。15.1 15.1 数据库平安性概述数据库平安性概述l15.1.2 15.1.2 验证模式的修改验证模式的修改l当安装SQL Server时,可以选择SQL Server的身份验证类型。安装完成之后也可以修改认证模式。修改步骤如下。l1翻开SQL Server Management Studi
4、o。l2在要更改的效劳器上鼠标右键单击,在快捷菜单中选择属性,弹出效劳器属性对话框。l3单击左侧列表中的“平安性项,出现“平安性页面,如图15.1所示。在图中修改身份验证。15.1 15.1 数据库平安性概述数据库平安性概述图15.1身份验证15.2 15.2 管理效劳器登录管理效劳器登录l1创立Windows登录账户l1在“对象资源管理器中,单击树型目录中的“平安性节点,如图15.2所示。15.2 15.2 管理效劳器登录管理效劳器登录l2鼠标右键单击“平安性的子节点“登录名,在快捷菜单中选择“新建登录名,出现“登录名-新建对话框,如图15.3所示。15.2 15.2 管理效劳器登录管理效劳
5、器登录l3在“登录名编辑框中输入登录名称,输入的登录名必须是已存在的Windows登录用户。可以单击“搜索按钮,出现登录“选择用户和组对话框,如图15.4所示。在对象名称编辑框中输入用户或组的名称,单击“检查名称按钮检查对象是否存在。输入完成,单击“确定按钮关闭选择用户或组对话框。15.2 15.2 管理效劳器登录管理效劳器登录l4确认选择的是“Windows身份验证。指定账户登录的默认数据库。l5单击窗口左侧列表中的“效劳器角色节点,指定账户所属效劳器角色。l6单击窗口左侧列表中的“用户映射节点,右侧出现用户映射页面。可以查看或修改SQL登录账户到数据库用户的映射。选择此登录账户可以访问的数
6、据库,对具体的数据库,指定要映射到登录名的数据库用户默认情况下,数据库用户名与登录名相同。指定用户的默认架构,首次创立用户时,其默认架构是dbo。l7设置完成单击“确定按钮提交更改。15.2 15.2 管理效劳器登录管理效劳器登录l2创立SQL Server登录账户l一个SQL Server登录账户名是一个新的登录账户,该账户和Windows操作系统的登录账户没有关系。l1翻开新建登录名对话框,选择“SQL Server身份验证,输入登录名,密码和确认密码,并选择缺省数据库,如图15.5所示。15.2 15.2 管理效劳器登录管理效劳器登录l2设置效劳器角色和用户映射,请参考“创立Window
7、s登录账户的步骤5和步骤6。15.2 15.2 管理效劳器登录管理效劳器登录l3登录账户管理l创立登录账户之后,在图15.2所示效劳器平安性展开登录名节点上,鼠标右键单击相应的账户,出现快捷菜单,如图15.6所示,如果要修改该登录账户,选择属性菜单;如要删除该登录账户,则选择删除菜单。15.2 15.2 管理效劳器登录管理效劳器登录l15.2.2 15.2.2 使用使用Transact-SQLTransact-SQL管理登录账户管理登录账户l在Transact-SQL中,管理登录账户的SQL语句有:CREATE LOGIN、DROP LOGIN、ALTER LOGIN。下面简要说明如何使用T-
8、SQL来创立和维护登录账户。l1新建登录账户CREATE LOGINl其语法格式为:lCREATE LOGIN login_name WITH|FROM 15.2 15.2 管理效劳器登录管理效劳器登录l【例15.1】创立带密码的登录名“test。MUST_CHANGE选项要求用户首次连接效劳器时更改此密码。lCREATE LOGIN test WITH PASSWORD=26aK MUST_CHANGEl【例15.2】从Windows域账户创立 Developmentiewangjf 登录名。lCREATE LOGIN Developmentiewangjf FROM Windows15.2
9、 15.2 管理效劳器登录管理效劳器登录l2删除登录账户DROP LOGINl其语法格式为:DROP LOGIN login_namel【例15.3】删除登录账户“test。lDROP LOGIN testl3更改登录账户ALTER LOGINl其语法格式为:lALTER LOGIN login_name l l|WITH ,.l :=ENABLE|DISABLE15.2 15.2 管理效劳器登录管理效劳器登录15.3 15.3 角色和用户管理角色和用户管理l15.3.1 15.3.1 角色管理简介角色管理简介l角色等价于Windows的工作组,将登录名或用户赋予一个角色,角色具有权限,登录名
10、或用户作为角色成员,从而继承了所属角色的权限。如图15.7所示。15.3 15.3 角色和用户管理角色和用户管理l只需给角色指定权限,然后将登录名或用户指定为某个角色,而不必给每个登录名或用户指定权限,这样给实际工作带来了很大的便利。l在SQL Server中角色分为效劳器角色和数据库角色。而数据库角色又分为固有数据库角色、用户自定义数据库角色和应用程序角色。l1效劳器角色l效劳器角色内建于SQL Server,其权限无法更改,每一个角色拥有一定级别的数据库管理职能,如图15.8所示。15.3 15.3 角色和用户管理角色和用户管理l效劳器角色包括以下几种。l bulkadmin:可以运行BU
11、LK INSERT语句。l dbcreator:可以创立、更改、删除和复原任何数据库。l diskadmin:管理磁盘文件。l processadmin:可以终止SQL Server实例中运行的进程。l securityadmin:管理登录名及其属性。这类角色可以GRANT、DENY和REVOKE效劳器级和数据库级权限,可以重置SQL Server登录名的密码。l serveradmin:可以更改效劳器范围的配置选项和关闭效劳器。l setupadmin:添加和删除链接效劳器,并且也可以执行某些系统存储过程。l sysadmin:可以在效劳器中执行任何活动。15.3 15.3 角色和用户管理角
12、色和用户管理15.3 15.3 角色和用户管理角色和用户管理l2固有数据库角色l固有数据库角色是指这些角色的数据库权限已被SQL Server预定义,不能对其权限进行任何修改,并且这些角色存在于每个数据库中,如图15.9所示。15.3 15.3 角色和用户管理角色和用户管理l固有数据库角色包括以下几种。l db_accessadmin:可以为Windows登录账户、Windows 组和SQL Server登录账户添加或删除访问权限。l db_backupoperator:可以备份该数据库。l db_datareader:可以读取所有用户表中的所有数据。l db_datawriter:可以在所有
13、用户表中添加、删除或更改数据。l db_ddladmin:可以在数据库中运行任何数据定义语言DDL命令。l db_denydatareader:不能读取数据库内用户表中的任何数据。15.3 15.3 角色和用户管理角色和用户管理l db_denydatawriter:不能添加、修改或删除数据库内用户表中的任何数据。l db_owner:可以执行数据库的所有配置和维护活动。l db_securityadmin:可以修改角色成员身份和管理权限。l public:当添加一个数据库用户时,它自动成为该角色成员,该角色不能删除,指定给该角色的权限自动给予所有数据库用户。ldb_owner和db_secu
14、rityadmin角色的成员可以管理固有数据库角色成员身份;但是,只有db_owner数据库的成员可以向db_owner固有数据库角色中添加成员。15.3 15.3 角色和用户管理角色和用户管理l3用户自定义数据库角色l当打算为某些数据库用户设置相同的权限,但是这些权限不等同于预定义的数据库角色所具有的权限时,就可以定义新的数据库角色来满足这一要求,从而使这些用户能够在数据库中实现某些特定功能。用户自定义数据库角色包含以下两种类型。l 标准角色:为完成某项任务而指定的具有某些权限和数据库用户的角色。l 应用角色:与标准角色不同的是,应用角色默认情况下不包含任何成员,而且是非活动的。将权限赋予应
15、用角色,然后将逻辑参加到某一特定的应用程序中,从而激活应用角色而实现了对应用程序存取数据的可控性。15.3 15.3 角色和用户管理角色和用户管理l15.3.2 15.3.2 角色的管理角色的管理l1使用Management Studio管理角色l1为效劳器角色添加登录账户。执行如下步骤。l 在图15.8中展开效劳器角色节点。在需要添加用户的角色上单击鼠标右键,选择“属性菜单,弹出“属性对话框。l 单击“添加按钮,则弹出“选择登录名对话框,如图15.10所示。l 单击“浏览按钮,则弹出“查找对象对话框,如图15.11所示。l 选中需要添加的对象。l 单击每个对话框中的“确定按钮关闭对话框。15
16、.3 15.3 角色和用户管理角色和用户管理图15.10“选择登录名对话框15.3 15.3 角色和用户管理角色和用户管理图15.11“查找对象对话框15.3 15.3 角色和用户管理角色和用户管理l2为固有数据库角色添加成员。鼠标右键单击想要添加成员的固有效劳器角色节点,其余步骤与1类似。l3创立用户自定义角色。执行如下步骤。l 展开要创立数据库节点,直到看到“数据库角色节点,鼠标右键单击“数据库角色,选择“新建数据库角色,出现“新建数据库角色对话框,如图15.12所示。15.3 15.3 角色和用户管理角色和用户管理15.3 15.3 角色和用户管理角色和用户管理l 在角色名称编辑框中填入
17、角色名称,在所有者编辑框中填入该角色的所有者。l 指定角色拥有的框架名称。单击“添加按钮添加角色成员,则弹出“选择数据库用户或角色对话框,如图15.13所示。15.3 15.3 角色和用户管理角色和用户管理l 输入用户如果需要,单击“浏览按钮,单击“确定按钮添加用户到角色。l 单击图15.12左侧选择页中的“平安对象,则右侧“平安对象页面,如图15.14所示。在此可以设置角色访问数据库的资源。15.3 15.3 角色和用户管理角色和用户管理15.3 15.3 角色和用户管理角色和用户管理l 单击平安对象中“搜索按钮,弹出“添加对象对话框,如图15.15所示。l 选择对象类型,如选择“特定类型的
18、所有对象,则弹出“选择对象类型对话框,如图15.16所示。15.3 15.3 角色和用户管理角色和用户管理l 在如图15.16所示的对话框中选择需要设置权限的对象类型,如选择表,单击“确定按钮关闭,则显示所有表的权限设置,如图15.17所示。可以设置具体的表的权限。针对具体表,还可以设计对应的列权限。15.3 15.3 角色和用户管理角色和用户管理15.3 15.3 角色和用户管理角色和用户管理l2使用Transact-SQL语句管理角色l对于效劳器角色来说,其成员为登录账号,对于数据库角色来说,其成员为数据库用户、数据库角色、Windows 登录或Windows组。l1管理效劳器角色。在SQ
19、L Server中管理效劳器角色的存储过程主要有两个:sp_addsrvro lemember和sp_dropsrvrrolemember。lsp_addsrvrolemember是添加登录账户到效劳器角色内,使其成为该角色的成员。l其语法格式为:lsp_addsrvrolemember loginame=login rolename=role15.3 15.3 角色和用户管理角色和用户管理lsp_dropsrvrrolemember用来在某一效劳器角色中删除登录账号,当该成员从效劳器角色中被删除后,便不再具有该效劳器角色所设置的权限。l其语法格式为:lsp_dropsrvrolemember
20、 loginame=login rolename=rolel【例15.7】将登录账户“iewangjf参加sysadmin角色中。lsp_addsrvrolemember iewangjf sysadmin15.3 15.3 角色和用户管理角色和用户管理l2管理数据库角色。管理数据库角色的语句有:CREATE ROLE,DROP ROLE,ALTER ROLE。lCREATE ROLE用来新建数据库角色,其语法格式为:lCREATE ROLE role_name AUTHORIZATION owner_name l其中AUTHORIZATION owner_name表示将拥有新角色的数据库用户
21、或角色。如果未指定用户,则执行CREATE ROLE的用户将拥有该角色。l【例15.8】创立用户“iewangjf隶属的数据库角色“buyers。lCREATE ROLE buyers AUTHORIZATION iewangjf15.3 15.3 角色和用户管理角色和用户管理l【例15.9】创立db_securityadmin 固有数据库角色隶属的数据库角色“auditors。lCREATE ROLE auditors AUTHORIZATION db_securityadminl管理角色成员的存储过程有:sp_addrolemember,sp_droprolemember,这两个存储过程和
22、添加删除效劳器角色的存储过程用法类似。l【例15.10】将数据库用户“iewangjf添加到当前数据库的“Sales数据库角色中。lsp_addrolemember Sales,iewangjf15.3 15.3 角色和用户管理角色和用户管理l3查看角色信息。查看角色信息的存储过程有sp_helprolemember、sp_helprole。lsp_helprolemember返回某个角色的成员的信息。其语法格式为:lsp_helprolemember rolename=role lsp_helprole返回当前数据库中有关角色的信息。其语法格式为:lsp_helprole rolename=
23、role l【例15.11】显示Sales角色的成员。lsp_helprolemember Salesl【例15.12】返回当前数据库中的所有角色。lsp_helprole15.3 15.3 角色和用户管理角色和用户管理l15.3.3 15.3.3 用户管理简介用户管理简介l用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的,用户账号总是基于数据库的,即两个不同数据库中可以有两个相同的用户账号。l在数据库中,用户账号与登录账号是两个不同的概念,一个合法的登录账号只说明该账号通过了Windows认证或SQL Server认证,但不能说明其可以对数据库数据和数据对象进行某种操作
24、。l通常而言,数据库用户账号总是与某一登录账号相关联。但有一个例外,那就是guest用户。用户通过Windows认证或SQL Server认证而成功登录到SQL Server之后的过程如下。15.3 15.3 角色和用户管理角色和用户管理l1检查该登录用户是否有合法的用户名,如果有合法用户名,则允许其以用户名访问数据库,否则执行步骤2。l2SQL Server检查是否有guest用户,如果有,则允许登录用户以guest用户来访问数据库,如果没有,则该登录用户被拒绝。l由此可见,guest用户主要是作为那些没有属于自己的用户账号的SQL Server登录者的缺省用户名,从而使该登录者能够访问具有
25、guest用户的数据库。15.3 15.3 角色和用户管理角色和用户管理l15.3.4 15.3.4 用户的管理用户的管理l1使用Management Studio管理用户l1在Management Studio对象资源管理器中,扩展指定的数据库节点,直到看到用户节点,如右图所示。l2鼠标右键单击用户子节点,在弹出菜单中选择“新建用户,弹出“新建数据库用户对话框,如图15.19所示。在用户名编辑框中输入用户名。15.3 15.3 角色和用户管理角色和用户管理15.3 15.3 角色和用户管理角色和用户管理l3在登录名编辑框中输入登录名或单击“按钮,弹出“选择登录名对话框,如图15.10所示。输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精选 XXXX 15 _SQL_Server_XXXX 数据库 安全性
限制150内