《《数据库的安全管理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库的安全管理》PPT课件.ppt(42页珍藏版)》请在金锄头文库上搜索。
1、An Introduction to Database Systems蚌埠学院学院Computer Science and technology SQLServer数据库应用An Introduction to Database Systems2/80第第11章章 数据库的安全管理数据库的安全管理 11.1 概述概述 11.2 登录账号管理登录账号管理 11.3 数据库用户管理数据库用户管理 11.4 权限管理权限管理An Introduction to Database Systems3/43安全性是数据库管理系统的重要特征。能否提供全面、完整、有效、灵活的安全机制,往往是衡量一个分布式数据
2、库管理系统是否成熟的重要标志,也是用户选择合适的数据库产品的一个重要判断指标。MicrosoftSQLServer2008系统提供了一整套保护数据安全的机制,包括角色、架构、用户、权限等手段,可以有效地实现对系统访问和数据访问的控制。本章全面讲述MicrosoftSQLServer2008系统的安全管理。An Introduction to Database Systems4/4311.1 概述概述 SQLServer2008数据库系统的安全管理具有层次性,安全级别可以分为三层。第一层是SQLServer服务器级别的安全性,这一级别的安全性建立在控制服务器登录账号和密码的基础上,即必须具有正确
3、的服务器登录账号和密码才能连接到SQLServer服务器。第二层安全性是数据库级别的安全性,用户提供正确的服务器登录账号和密码,通过第一层的SQLServer服务器的安全性检查之后,将接受第二层的安全性检查,即是否具有访问某个数据库的权利。第三层安全性是数据库对象级别的安全性,用户通过了前两层的安全性验证之后,在对具体的数据库安全对象(表,视图,存储过程等)进行操作时,将接受权限检查,即用户要想访问数据库里的对象时,必须事先被赋予相应的访问权限,否则系统将拒绝访问。An Introduction to Database Systems5/4311.2 登录账号管理登录账号管理 11.2.1身份
4、验证模式SQLServer2008提供两种身份验证模式:Windows身份验证模式和混合身份验证模式(SQLServer和Windows身份验证模式)。1Windows身份验证模式在Windows身份验证模式下,系统会启用Windows身份验证并禁用SQLServer身份验证,即用户只能通过Windows账号与SQLServer进行连接。2混合身份验证模式在混合身份验证模式下,系统会同时启用Windows身份验证和SQLServer身份验证。用户既可以通过Windows账号登录,也可以通过SQLServer专用账号登录。An Introduction to Database Systems6/
5、433查看和设置身份验证模式安装SQLServer2008时,安装程序会提示用户选择服务器身份验证模式,然后根据用户的选择将服务器设置为Windows身份验证模式或SQLServer和Windows身份验证模式。在使用过程中,可以根据需要来重新设置服务器的身份验证模式。11.2 登录账号管理登录账号管理 An Introduction to Database Systems7/43具体的过程:(1)在SQLServerManagementStudio的“对象资源管理器”中,右击服务器,在弹出的快捷菜单中单击“属性”。(2)在“安全性”页上的“服务器身份验证”下,选择新的服务器身份验证模式,再单
6、击“确定”。(3)重新启动SQLServer,使设置生效。11.2 登录账号管理登录账号管理 An Introduction to Database Systems8/4311.2.2服务器角色SQLServer2008提供了9种固定的服务器角色,除此之外用户不能再创建新的服务器角色。在对象资源管理器中展开“安全性”节点,然后单击“服务器角色”,即可看到这9种服务器角色。只有public角色的权限可以根据需要修改,而且对public角色设置的权限,所有的登录账号都会自动继承。11.2 登录账号管理登录账号管理 An Introduction to Database Systems9/43查看和
7、设置public角色权限的步骤为:(1)右击public角色,在弹出的快捷菜单中单击“属性”。(2)在“服务器角色属性”对话框的“权限”页中,可以查看当前public角色的权限并进行修改。11.2 登录账号管理登录账号管理 An Introduction to Database Systems10/4311.2.3账号管理1创建登录账号具体步骤为:(1)在“对象资源管理器”中,展开“安全性”节点,然后右击“登录名”,在弹出的快捷菜单中选择“新建登录名”。(2)在“登录名-新建”对话框中,选择“常规”页。(3)在“登录名-新建”对话框中,选择“服务器角色”页。(4)在“登录名-新建”对话框中,选
8、择“用户映射”页。该页用于设置访问服务器的登录名将使用什么样的数据库用户名访问各数据库,以及具备什么样的数据库角色。(5)在“登录名-新建”对话框中,选择“安全对象”页。在该页中可以设置对特定对象(如服务器、登录名)的权限。(6)在“登录名-新建”对话框中,选择“状态”页。(7)设置完所有需要设置的选项之后,单击“确定”按钮即可创建登录账号11.2 登录账号管理登录账号管理 An Introduction to Database Systems11/43“常规”页中有以下内容:登录名:在“登录名”文本框中输入要创建的登录账号名,也可以使用右边的“搜索”按钮打开“选择用户或组”对话框,查找Win
9、dows账户。Windows身份验证:指定该登录账号使用Windows集成安全性。SQLServer身份验证:指定该登录账号为SQLServer专用账号,使用SQLServer身份验证。映射到证书:指定该登录账号与某个证书相关联,可以通过右边的文本框输入证书名。映射到非对称密钥:表示该登录账号与某个非对称密钥相关联,可以在右边的文本框中输入非对称密钥名称。映射到凭据:此选项将凭据链接到登录名。默认数据库:为该登录账号选择默认的数据库。默认语言:为该登录账号选择默认的语言。11.2 登录账号管理登录账号管理 An Introduction to Database Systems12/43使用使用
10、Create Login语句来创建登录账号语句来创建登录账号 CreateLoginloginNameWith|From:=Password=passwordMust_Change,.:=|Default_Database=database|Default_Language=language|Check_Expiration=On|Off|Check_Policy=On|Off|Credential=credential_name:=WindowsWith,.|Certificatecertname|AsymmetricKeyasym_key_name:=Default_Database=da
11、tabase|Default_Language=languageAn Introduction to Database Systems13/43【例题11-1】创建一个名为UserLogin、密码为123的登录名,默认数据库为教学管理数据库。CREATELOGINUserLoginWITHpassword=123default_database=教学管理数据库An Introduction to Database Systems14/432修改登录账号修改登录账号的过程和创建登录账号的过程类似,在对象资源管理器中,展开“安全性”节点下面的“登录名”节点,然后右键单击登录名UserLogin,如
12、图11-12所示,在弹出的快捷菜单中选择“属性”菜单,即可打开“登录属性”对话框,如图11-13所示。接下来就可以对该登录账号进行修改。其中各选项的含义和“登录名-新建”对话框中的选项含义相同。11.2 登录账号管理登录账号管理 An Introduction to Database Systems15/4311.2 登录账号管理登录账号管理 An Introduction to Database Systems16/43利用利用Alter Login语句修改登录账号语句修改登录账号 AlterLoginlogin_name|With,.|:=Enable|Disable:=Password=
13、passwordOld_Password=oldpassword| |Default_Database=database|Default_Language=language|Name=login_name|Check_Policy=On|Off|Check_Expiration=On|Off|Credential=credential_name|NoCredential:=Must_Change|Unlock:=AddCredentialcredential_name|DropCredentialcredential_nameAn Introduction to Database System
14、s17/433删除登录账号在“对象资源管理器”中,展开“安全性”节点下面的“登录名”节点,然后右击要删除的登录名,在弹出的快捷菜单中选择“删除”菜单,在出现的“删除登录”对话框中单击“确定”按钮即可删除该登录账号。利用DropLogin语句删除登录账号DROPLoginlogin_name【例题11-3】删除登录名UserLogin。DROPLoginUserLogin11.2 登录账号管理登录账号管理 An Introduction to Database Systems18/4311.3 数据库用户管理数据库用户管理 11.3.1数据库角色1固定数据库角色SQLServer在每个数据库中都
15、提供了10个固定的数据库角色。与服务器角色不同的是,数据库角色权限的作用域仅限在特定的数据库内。在对象资源管理器中展开“教学管理数据库”下的“安全性”节点,然后再单击“角色”/“数据库角色”,即可看到这10个数据库角色,如图11-15所示。An Introduction to Database Systems19/43图11-15选择“数据库角色” 11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems20/432新建数据库角色数据库角色是针对具体的数据库而言的,作用域为数据库范围,因此数据库角色的创建需要在特定的数据库下。具体的步骤为:
16、(1)打开“对象资源管理器”,展开“教学管理数据库”,找到“安全性”节点并展开。(2)展开“角色”节点,在“数据库角色”节点上右击鼠标,在弹出的快捷菜单上单击“新建数据库角色”命令。如图11-17所示。11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems21/43图11-17新建数据库角色 11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems22/43(3)打开“数据库角色-新建”对话框,如图11-18所示。主要有以下几个选项:11.3 数据库用户管理数据库用户管理 An Int
17、roduction to Database Systems23/43角色名称:输入要创建的数据库角色名称。所有者:输入该数据库角色的所有者,也可以通过右边的按钮打开对话框进行选择。此角色拥有的架构:在列表中选择此角色拥有的架构。“添加”按钮:可以向该数据库角色中添加成员,添加的成员将自动获得该数据库角色的权限。“删除”按钮:可以从该数据库角色中删除成员。如果有必要,可以对“安全对象”和“扩展属性”页中的相关选项进行设置。(4)单击“确定”按钮,即可创建新的数据库角色。11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems24/4311.3
18、.2用户管理1利用对象资源管理器创建数据库用户在对象资源管理器中创建数据库用户的步骤为:(1)打开对象资源管理器,展开“教学管理数据库”,找到“安全性”节点并展开。(2)在“用户”节点上右击鼠标,在弹出的快捷菜单上单击“新建用户”命令。如图11-19所示。11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems25/43图11-19新建数据库用户 11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems26/43(3)这时将打开“数据库用户-新建”对话框,如图11-20所示。在“常规”页
19、中对如下内容进行设置。11.3 数据库用户管理数据库用户管理 图11-20“数据库用户-新建”对话框 An Introduction to Database Systems27/43用户名:输入要创建的数据库用户名。如输入用户名User。登录名:输入与该数据库用户对应的登录账号,也可以通过右边的按钮进行选择。证书名称:输入与该数据库用户对应的证书名称。密钥名称:输入与该数据库用户对应的密钥名称。无登录名:指定不应将该数据库用户映射到现有登录名,可以作为guest连接到数据库。默认架构:输入或选择该数据库用户所属的架构。“此用户拥有的架构”:在列表中可以查看和设置该用户拥有的架构。“数据库角色成
20、员身份”:在列表中可以将该数据库用户选择数据库角色。11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems28/43(4)如果需要,可以对“安全对象”和“扩展属性”中的选项进行设置。(5)单击“确定”按钮,即可创建数据库用户。11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems29/432利用CreateUser语句创建数据库用户创建数据库用户的CreateUser语句的语法格式为:CreateUseruser_nameFor|FromLoginlogin_name|Certifi
21、catecert_name|AsymmetricKeyasym_key_name|WithoutLogin11.3 数据库用户管理数据库用户管理 An Introduction to Database Systems30/43【例题11-4】创建一个名为UserLogin的登录名,默认的数据库是教学管理数据库,然后创建一个名为Tuser的对应数据库用户CREATELOGINUserLoginWITHpassword=123default_database=教学管理数据库CREATEuserTuserFORLOGINUserLoginAn Introduction to Database Sys
22、tems31/4311.4 权限管理权限管理 11.4.1权限类型根据要操作的对象不同,权限的类型也不相同,主要有以下几种类型:(1)如果对象为数据库,则相应的权限主要有:创建操作(CreateDatabase、CreateTable、CreateView、CreateFunction、CreateProcedure、CreateTrigger等等)、修改操作(AlterDatabase、AlterTable、AlterView、AlterFunction、AlterProcedure、AlterTrigger等等)、备份操作(BackupDatabase、BackupLog)、Connect
23、、Control等。(2)如果对象为表和视图,则相应的权限主要有:插入数据(Insert)、更新数据(Update)、删除数据(Delete)、查询(Select)和引用(References)等。(3)如果对象为存储过程,则权限的类型主要有:执行(Execute)、控制(Control)和查看定义等。An Introduction to Database Systems32/43(4)如果对象为标量函数,则主要的权限有:执行(Execute)、引用(References)、控制(Control)等。(5)如果对象为表值函数,则相应的权限主要有:插入数据(Insert)、更新数据(Update
24、)、删除数据(Delete)、查询(Select)和引用(Reference)等。11.4 权限管理权限管理 An Introduction to Database Systems33/4311.4.2设置权限可以直接对数据库角色或用户进行对象操作权限的设置,下面将以对数据库用户设置权限为例进行说明,数据库角色的权限分配过程类似。(1)打开“对象资源管理器”,展开“教学管理数据库”节点,找到“安全性”节点并展开。(2)展开“用户”节点,在数据库用户User上单击鼠标右键,在弹出的快捷菜单上单击“属性”命令,将打开“数据库用户”属性对话框,选择“安全对象”页。如图11-21所示。11.4 权限管
25、理权限管理 An Introduction to Database Systems34/43图11-21数据库属性中的“安全对象”页 11.4 权限管理权限管理 An Introduction to Database Systems35/43(3)单击右边的“搜索”按钮,如图11-22所示,将需要分配给该用户操作权限的对象添加到“安全对象”列表中。(4)在“安全对象”列表中,选中要分配权限的对象,则下面的“权限”列表中将列出该对象的操作权限,根据需要将设置相应权限。如图11-23所示。11.4 权限管理权限管理 An Introduction to Database Systems36/43A
26、n Introduction to Database Systems37/4311.4.3DCL语句SQL的数据控制通过DCL(数据控制语言)实现。DCL通过对数据库用户的授权(Grant)、撤销授权(Revoke)和拒绝授权(Deny)来实现数据的存取控制,以保证数据库的安全性。11.4 权限管理权限管理 An Introduction to Database Systems38/431Grant语句使用Grant语句可以将安全对象的权限赋予安全主体,Grant语句的完整的语法非常复杂,这里只给出简单的常用的语法格式:GrantAllPrivileges|permission(column,
27、.n),.nOnclass:securableToprincipal,.nWithGrantOption11.4 权限管理权限管理 An Introduction to Database Systems39/43【例题11-5】将教学管理数据库中对学生基本信息表的insert权限授予Tuser用户。grantinserton学生基本信息表toTuser11.4 权限管理权限管理 An Introduction to Database Systems40/432Revoke语句利用Revoke可以撤销以前授予或拒绝了的权限,与Grant语句一样,完整的Revoke语句的语法非常复杂。这里只给出常
28、用的Revoke语句的格式。RevokeGrantOptionForAllPrivileges|permission(column,.n),.nOnclass:securableTo|Fromprincipal,.nCascade11.4 权限管理权限管理 An Introduction to Database Systems41/43【例题11-6】撤销授予Tuser用户对学生基本信息表的insert权限。revokeinserton学生基本信息表fromTuser11.4 权限管理权限管理 An Introduction to Database Systems42/433Deny语句使用Deny语句可以拒绝授予主体权限,并且可以防止主体通过其组或角色成员身份继承权限。具体的语法格式为:DenyAllPrivileges|permission(column,.n),.nOnclass:securableToprincipal,.nCascade【例题11-7】拒绝Tuser用户对学生基本信息表使用insert权限。denyinserton学生基本信息表toTuser11.4 权限管理权限管理