您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SQL2008安全及权限
第1章安全与权限第1章安全与权限1.1安全与权限的基础知识1.1.1SQLserver2008安全机制的总体策略(1)远程网络主机通过Internet访问SQLserver2008服务器所在的网络,这由网络环境提供某种保护机制。(2)网络中的主机访问SQLserver2008服务器,这首先要求对SQLServer进行正确配置,其内容将要在下一节中介绍;其次是要求拥有对SQLserver2008实例的访问权——登录名。(3)访问SQLserver2008数据库,这要求拥有对SQLserver2008数据库的访问权——数据库用户。(4)访问SQLserver2008数据库中的表和列,这要求拥有对表和列的访问权——权限。安全对象Server角色SQLServer登录Windows组域用户账户本地用户账户用户数据库角色应用程序角色组SQLServer数据库Windows文件密钥服务器架构数据库安全对象权限主体1.1.2安全对象SQLServer2008的安全机制SQLServer2008的安全机制可以分为四个级别:操作系统的安全性SQLServer2008的登录安全性数据库的使用安全性数据库对象的使用安全性SQLServer2008权限Server角色SQLServer登录Windows组域用户账户本地用户账户用户数据库角色应用程序角色组SQLServer数据库Windows文件密钥CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKEOWNERSHIPVIEWDEFINITIONBACKUP授予/撤销/拒绝ACL服务器架构数据库安全对象权限主体1.1.3SQLServer2008权限Windows身份验证模式用户由Windows授权,适用于当数据库仅在组织内部访问时。通过登录而被授予SQLServer的访问权混合身份验证模式用户通过一个受信任连接连接到SQLServer并使用Windows身份验证来访问SQLServer适用于当外界的用户需要访问数据库时或当用户不能使用WINDOWS域时。SQLServer身份验证模式1.2.1SQLServer2008的身份认证模式1.Windows身份验证模式•当使用Windows身份验证连接到SQLServer时,MicrosoftWindows将完全负责对客户端进行身份验证。•在这种情况下,将按其Windows用户账户来识别客户端。•当用户通过Windows用户账户进行连接时,SQLServer使用Windows操作系统中的信息验证账户名和密码,这是SQLServer默认的身份验证模式,比混合模式安全的多。1.2.1SQLServer2008的身份认证模式2.混合身份验证模式混合验证模式允许以SQLServer身份验证模式或者Windows身份验证模式来进行验证。使用哪个模式取决于在最初的通信时使用的网络库。如果一个用户使用TCP/IPSockets进行登录验证,则使用SQLServer身份验证模式;如果用户使用命名管道,则登录时将使用Windows验证模式。这种模式能更好地适应用户的各种环境。1.2.3设置身份验证模式通过图形化界面设置身份验证模式第1步:打开SQLServerManagementstudio,使用WINDOWS或SQLSERVER身份验证建立连接。第2步:对象资源管理器-服务器右击-属性-服务器属性第3步:选择安全性-在此设置身份验证模式1.3数据库账户在SQLServer中,账号有两种:一种是登录服务器的登录账号,另外一种就是使用数据库的用户账号。登录账号只是让用户登录到SQLServer中,登录名本身并不能让用户访问服务器中的数据库。要访问特定的数据库,还必须具有用户名。用户名在特定的数据库内创建,并关联一个登录名(当一个用户创建时,必须关联一个登录名)。通过授权给用户来指定用户可以访问的数据库对象的权限。1.3.1服务器的登录账号创建登录账号时需要指出该账号使用的是Windows身份验证还是使用的SQLServer身份验证。1.使用Windows身份验证的登录2.使用SQLServer身份验证的登录1.3.2数据库用户账户一般情况下,用户登录SQLServer实例后,还不具备访问数据库的条件。在用户可以访问数据库之前,管理员必须为该用户在数据库中建立一个数据库账号作为访问该数据库的ID。这个过程就是将SQLServer登录账号映射到需要访问的每个数据库中,这样才能够访问数据库。如果数据库中没有用户账户,则即使用户能够连接到SQLServer实例也无法访问到该数据库。1.默认的数据库用户2.添加数据库用户3.删除数据库用户创建数据库用户的方法创建数据库用户可分为两个过程:首先创建数据库用户使用的SQLServer2008登录名,如果使用内置的登录名则可省略这一步。其次为数据库创建用户,指定到创建的登录名。用SQLServerManagementStudio或CREATEUSER语句创建用户1.3.1管理用户的方法下面通过SQLServerManagementstudio工具来创建数据库用户帐户,然后给用户授予访问【教务管理系统】数据库的权限。1、展开【服务器】|【数据库】|【教务管理系统】节点。2、再展开【安全性】|【用户】节点并右击,选择【新建用户】,打开【数据库用户-新建】3、在【用户名】文本框中输入dur_suna来指定要创建的数据库用户名称4、单击【登录名】文本框旁边的【选项】,打开【选择登录名】窗口,然后单击【浏览】按钮,弹出【查找对象】对话框。5、启用suna旁边的复选框,单击确定按钮,返回【选择登录名】窗口,单击确定,返回【数据库用户-新建】窗口6、用同样的方式,选择【默认架构】为dbo7、单击确定按钮8、为了验证是否创建成功,可以展开用户节点1.4固定服务器角色服务器角色独立于各个数据库。如果我们在SQLServer中创建一个登录账号后,要赋予该登录者具有管理服务器的权限,此时可设置该登录账号为服务器角色的成员。SQLServer提供了以下固定服务器角色:内置服务器角色角色描述sysadmin可执行任何操作dbcreator创建和修改数据库diskadmin管理磁盘文件serveradmin配置服务器级的设置securityadmin管理和审核服务器登录processadmin管理SQLServer进程bulkadmin执行BULKINSERT语句setupadmin配置和复制已链接的服务器1.4.2服务器角色管理通过图形化界面实现服务器角色管理第1步以系统管理员身份登录到SQLServer服务器,在登录图标对应的列表项中,选择登录账号“zhou”的项目双击;第2步选择“服务器角色”选项卡,如图8.9所示,选项卡中列出了SQLServer所有的固定服务器角色,将“Systemadministrators”服务器角色前的复选框选中。图8.9SQLServer服务器角色设置窗口1.4.2服务器角色管理2.利用系统存储过程实现服务器角色管理利用系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色中,使其成为固定服务器角色的成员。语法格式:sp_addsrvrolemember‘login’,'role'参数含义:login:添加到固定服务器角色role的登录账号名,【例8.6】将WindowsNT用户dream\zhouym添加到sysadmin固定服务器角色中。EXECsp_addsrvrolemember'dream\zhouym','sysadmin'1.4.2服务器角色管理利用sp_dropsrvrolemember系统存储过程可从固定服务器角色中删除SQLServer登录账号或WindowsNT用户或组。【例8.7】从sysadmin固定服务器角色中删除登录zhou。EXECsp_dropsrvrolemember'zhou','sysadmin'利用sp_srvrolepermission系统存储过程可以浏览固定服务器角色的权限。1.5数据库角色固定数据库角色授予了管理公共数据库任务的权限用户定义的数据库角色相同数据库权限的多个用户应用程序角色包含数据库中所有用户5.3.3数据库角色1.5.1固定的数据库角色1.通过管理器工具浏览固定的数据库角色第1步打开对象资源管理器,选择任意一个数据库名。第2步展开数据库的节点,选择【安全性】第3步在【安全性】下选择【角色】,展开节点,然后选择【数据库角色】,就可以看到系统默认的固定数据库角色了2.使用系统存储过程浏览固定的数据库角色EXECSP_HELPdbfixedrolego1.5.1固定的数据库角色1.固定数据库角色固定数据库角色定义在数据库级别上,并且有权进行特定数据库的管理及操作。SQLServer提供了以下固定数据库角色:(1)db_owner:数据库所有者,可执行数据库的所有管理操作。SQLServer数据库中的每个对象都有所有者,通常创建该对象的用户即为其所有者。其他用户只有在相应所有者对其授权后,方可访问该对象。(2)db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和组的权限。1.5.1固定的数据库角色(3)db_securityadmin:数据库安全管理员,可管理数据库中的权限,如设置数据库表的增、删、修改和查询等存取权限。(4)db_ddladmin:数据库DDL管理员,可增加、修改或删除数据库中的对象。(5)db_backupoperator:数据库备份操作员,具有执行数据库备份的权限。(6)db_datareader:数据库数据读取者。(7)db_datawriter:数据库数据写入者,具有对表进行增、删修改的权限。(8)db_denydatareader:数据库拒绝数据读取者,不能读取数据库中任何表的内容9)db_denydatawriter:数据库拒绝数据写入者,不能对任何表进行增、删修改操作。(10)public:是一个特殊的数据库角色,每个数据库用户都是public角色的成员,因此,不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。通常将一些公共的权限赋给public角色。5.5.2用户自定义数据库角色1.通过SQL命令创建数据库角色1)定义数据库角色语法格式:CREATEROLErole_name[AUTHORIZATIONowner_name]其中语法中的参数介绍如下:role_name将要创建的角色的名称owner_name该角色拥有者的名字,默认为dbo。其中owner_name必须是当前数据库里的用户或角色1.5.2用户自定义数据库角色2.通过管理器创建数据库角色第1步:展开指定的数据库节点。第2步:选择【安全性】选项,展开【安全性】节点,选择【角色】选项;第3步:展开【角色】选项下的节点,选择【数据库角色】选项,鼠标右键单击,选择【新建数据库角色】;第4步:输入数据库角色的名字,也可以单击【添加】按钮添加数据库成员。第5步:单击【确定】按钮1.5.3应用程序角色应用程序角色是用户定义数据库角色的一种形式,与固定数据库角色不同。它规定了某个应用程序的安全性,用来控制通过某个应用程序对数据的间接访问。例如,管理员允许雇员使用雇员处理程序录入新员工、离职员工和打印统计报表等。1.6数据库权限权限提供了一种方法来对特权进行分组,并控制实例、数据库和数据库对象的维护和实用程序的操作。用户可以具有授予一组数据库对象的全部特权的管理权限,也可以具有授予管理系统的全部特权但不允许存取数据的系统权限。1.6.1权限概述权限类型:对象权限语句权限隐式权限对于表和视图,拥有者可以授予数据库用户INSERT、UPDATE、DELETE、SELECT和REFERENCES五种权限。1.6.2管理
本文标题:SQL2008安全及权限
链接地址:https://www.777doc.com/doc-5167078 .html