数据库安全管理
1、理解安全性问题是理解数据库管理系统安全性机制的前提。下面结合Microsoft SQL Server 2008 R2系统的安全特征,分析安全性问题和安全性机制之间的关系。当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中呢?在Microsoft SQL Server 2008 R2系统中,这个问题是通过身份验证模式和主体解决的。身份验证模式是Microsoft SQL Server 2008 R2系统验证客户端和服务器之间连接的方式。Microsoft SQL Server 2008 R2系统提供了两种身份验证模式,Windows身份验证模式和混合模式
2、两种确认用户的验证模式。Windows验证模式: 利用了Windows本身具备的管理登录、验证用户合法性的能力,允许SQL Server用户登录时使用Windows的用户名和口令。混合验证模式 混合验证模式接受Windows授权用户和SQL授权用户。如果不是Windows操作系统的用户也希望使用SQL Server,那么应该选择混合验证模式。SQL Server推荐使用Windows验证模式。
3、SQL Server的安全性管理可分为3个等级1. 操作系统级的安全性2. SQL Server 级的安全性3. 数据库级的安全性。
4、用户连接到SQL Server 账户都称SQL Server 的登录。用户可以防止数据库被未授权的用户故意或无意地修改。SQL Server为每一用户分配了唯一的用户名和密码。同时,可以为不同账号授予不同的安全级别。数据库用户是数据库级的主体,是登录名在数据库中的映射,是在数据库中执行操作和活动的执行者。
5、登录名属于服务器级的安全策略,要连接到数据库,首先要存在一个合法的登录名。在Microsoft SQL Server 2008 R2系统中,有两种方式来创建:可以通过Transact-SQL语句完成也可以通过Microsoft SQL Server Management Studio工具来完成。
6、在SSMS中创建登录名的步骤如下。打开SSMS并连接到目标服务器,在【对象资源管理器】窗口中,单击“安全性”节点前的“+”号,展开安全节点。在“登录名”上单击鼠标右键,弹出快捷菜单,从中选择“新建登录(N)…”出现【登录名】对话框,单击需要创建的登录模式前的单选按钮,选定验证方式。并完成“登录名”、“密码”、“确认密码”和其他参数的设置。选择“选择页”中的“服务器角色”项,出现服务器角色设定页面,用户可以为此用户添加服务器角色。选择【登录名】对话框中的“用户映射”项,进入映射设置页面,可以为这个新建的登录添加映射到此登录名的用户,并添加数据库角色,从而使该用户获得数据库的相应角色对应的数据库权限。
7、如果连接来自一个不安全的系统,我们可以捂执涡扔使用身份验证,SQL Server 将验证登录的身份,即通过用户提供的登录名和与预先存储在数据库中的登录名和密码进行比较来完成身份验证。设置身份验证模式方刮茕栓双法如下:打开SSMS并连接到目标服务器,在【资源管理器】窗口中,在目标服务器上单击鼠标右键,弹出快捷菜单,从中选择“属性”命令。出现【服务器属性】窗口,选择【选择页】中的“安全性”选项,进入安全性设置页面。在“服务器身份验证”选项级中选择验证模式前的单选按钮,选中需要的验证模式。用户还可以在“登录审核”选项级中设置需要的审核方式.单击“确定”按钮,完成登录验证模式的设置。ps:审核方式取决于安全性要求,这四种审核级别的含义如下。“无”:不使用登录审核。“仅限失败的登录”:记录所有的失败登录。“仅限成功的登录”:记录所有的成功登录。“失败和成功的登录”:记录所有的登录。
8、角色用来简化将很多权限分配给用户这一复杂任务的管理。角色允许用户分组接受同样的数据库权限,而不用单独给每一个用户分配这些权限。用户可以使用系统自带的角色,也可以创建一个代表一组用户使用的权限角色,然后把这个角色分配给这个工作组的用户。 一般而言,角色是为特定的工作组或者任务分类而设置的,用户可以根据自己所执行的任务成为一个或多个角色的成员。当然用户可以不必是任何角色的成员,也可以为用户分配个人权限。什么是角色角色是SQL Server 2008用来集中管理数据库或者服务器的权限
9、在SQL Server安装时,数据库级别上也有一些预定义的角色,也可以自己创建新的墙绅褡孛数据库角色。这些剞麽苍足数据库角色用于授权给数据库用户,拥有某种或某些角色的用户会获得相应角色对应的权限。创建新数据库角色方法如下:展开要添加新角色的目标数据库,单击目标数据库节点下的“安全性”节点前的“+”号,展开此节点。然后在“角色”节点上单击右键,弹出快捷菜单,选择快捷菜单中的“新建”下“ 新建数据库角色”命令,出现“数据库角色-新建”对话框在“常规”选择页地“角色名称”框中输入新角色的名称。若不指定“所有者”,则创建此角色的用户是其所有者。单击“添加”按钮,选择数据库用户或者角色为此角色的成员。单击“确定”按钮,完成操作。
10、固定角色和分配固定角色通过给用户分配固定服务器角色,可以使用户具有执行管理任务的角色权限。固定服务器角色的维护比单个权限维护更容易些,但是固定服务器角色不能修改。在SSMS中,可以按以下步骤为用户分配固定服务器角色,从而使该用户获取相应的权限。在【对象资源管理器】中,单击服务器前的“+”号,展开服务器节点。单击“安全性”节点前的“+”号,展开安全性节点。这时在次节点下面可以看到固定服务器角色。在要给用户添加的目标角色上单击鼠标右键,弹出快捷菜单,从中选择“属性(R)”命令。出现【服务器角色属性】对话框,单击“添加(A)…”按钮。出现【选择登陆名】对话框,单击“浏览(B)…”按钮。出现“查找对象”对话框,在该对话框中,选择目标用户前的复选框,选中其用户,最后单击“确定”按钮。回到【选择登陆名】对话框,可以看到选中的目标用户已包含在对话框中,确定无误后,单击“确定”按钮。回到【服务器角色属性】对话框,确定添加的用户无误后,单击“确定”按钮,完成为用户分配角色的操作。
11、什么是架构 架构是对象的容器,用于在数据库内定义对象的命名空间。他们用于简化管理和创建可以共同管理的对象子集。架构与用户分离,用户拥有架构,并且当服务器在查询中解析非限定对象时,总是有一个默认的架构提供服务器使用。架构的特点:访问默认架构中的对象时,不需要指定架构名称访问其他架构中的对象时,需要两部分或者三部分的标识符。格式为:database_name.schema_name.object_name。多个角色可以通过在角色或者Windows组中的成员资格来拥有单个架构。多个用户可以共享单个默认架构。架构名称在每个数据库中必须是唯一的。
12、在创建表之前,应该谨慎地考虑架构的名称。架构的名称可以长达128个字符。架构的名称激默芡食必须以英文字母开头,在名称中间可以包含下划线“_”、@符号、#符号和数字。在SSMS中创建蕈瀵邻松架构的方法如下:在【对象资源管理器】中,展开【服务器】结点,再选择目标数据库的【安全性】节点,右击【架构】节点,在弹出的菜单中选择【新建架构】命令,显示【新建-架构】窗口。在【常规】页面,可以指定架构的名称以及设置架构的所有者。单击【搜索】按钮打开【搜索角色和用户】对话框。在【搜索角色和用户】对话框中,单击【浏览】按钮,打开【查找对象】对话框。在【查找对象】对话框中选择架构的所有者,可以选择当前系统的所有用户或者角色。在【选择对象】中,从中单击“对象类型”按钮。选择完成后,单击【确定】按钮就可以完成架构的创建。架构的管理:修改架构移动架构删除架构
13、数据库的两类权限:针对所有对象的权限表示这种权限可以针对SQL Server系统中所有的对象:CONTROL权限是所有对象都有的权限。 针对特殊对象的权限。是指某些权限只能在指定的对象上起作用,例如INSERT可以是表的权限,但是不能是存储过程的权限;而EXECUTE可以是存储过程的权限,但是不能是表的权限。
14、数倌栗受绽据库对象是授予用户以允许他们访问数据库中对象的一类权限,对象权限对于使用SQL语句访问表或者视图是必须的。在SSMS中给用户镙烨莲峪添加对象权限的具体步骤如下 :依次单击【对象资源管理器】窗口中树型节点前的“+”号,直到展开目标数据库的“用户”节点为止。在“用户”节点右键,选择“属性” 。在【数据库用户】中,选择“选择页”窗口中的“安全对象”项,进入权限设置页面,单击“添加(A)…”按钮在【添加对象】中,单击要添加的对象类别前的单选按钮,添加权限的对象类别,然后单击“确定”按钮。在【选择对象】中,从中单击“对象类型”按钮。在【选择对象类型】中,选中需要添加权限的对象类型前的复选框,选中其对象。最后单击“确定”按钮。回到【选择对象】中,此时在该对话框中出现了刚才选择的对象类型,单击该对话框中的“浏览(B)…”按钮。在【查找对象】中,选择要添加权限的对象。最后单击“确定”按钮。又回到【选择对象】中,并且已包含了选择的对象。确定无误后,单击该对话框中的“确定”按钮,完成对象选择操作。又回到【数据库用户】中,此窗口中已包含用户添加的对象,依次选择每一个对象,并在下面的该对象的“显示权限”窗口中根据需要选择“授予/拒绝”列的复选框,添加或禁止对该(表)对象的相应访问权限。设置完每一个对象的访问权限后,单击“确定”按钮,完成给用户添加数据库对象权限所有操作。
15、结合HOTLE数据库,练习创建登录帐号以及权限设置和回收等相关操作1、打开Microsoft SQL Server Management Studio,展开安全性文件夹,选择登录名选型,并右键点击,打开创建登录账号窗口,创建一个新的登录账号Guest,采用SQL Server身份验证,密码为空
16、依次展开数据库—>hotel—>安全性—>用户文件夹,为hotel数据库创建一个与Guest对应的用户账号:righttest
17、点击新创建的righttest用户,在“选择页”展开安全对象窗口,并通过选择来设定righttest用户对于“客房信息表”的“SELECT”权限
18、在查询分析器中,使用Guest登录,并使用语句:SELECT * FROM 客房信息,执行成功。
19、打开righttest用户的属性窗口,选择“安全对象”选项,在该窗口里面可以收回前面设定的righttest用户的权限。
20、小结:数据库安全控制的基本概念;SQL Server 2008的安全体系结构,包括安全控制策略,身份验证模式,验证模式的设置;数据库系统登录管理中管理模式和管理方法。数据库用户管理的基本概念和方法。数据库架构管理的基本概念与方法。数据库系统角色管理和权限管理等。