SQL2008安全与权限_第1页
SQL2008安全与权限_第2页
SQL2008安全与权限_第3页
SQL2008安全与权限_第4页
SQL2008安全与权限_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第1章章 安全与权限安全与权限 第第1章章 安全与权限安全与权限 1.1 安全与权限的基础知识安全与权限的基础知识 1.1.1 SQL server 2008安全机制的总体策略 远程网络主机通过Internet访问SQL server 2008服务器所在的网络,这由 网络环境提供某种保护机制。 (2) 网络中的主机访问SQL server 2008服务器,这首先要求对SQL Server 进行正确配置,其内容将要在下一节中介绍;其次是要求拥有对SQL server 2008实例的访问权 登录名。 (3) 访问SQL server 2008数据库,这要求拥有对SQL server 2008数据

2、库的 访问权数据库用户。 (4) 访问SQL server 2008数据库中的表和列,这要求拥有对表和列的访问 权 权限。 安全对象 Server 角色 SQL Server 登录 Windows 组 域用户账户 本地用户账户 用户 数据库角色 应用程序角色 组 SQL Server 数据库数据库 Windows 文件 密钥 服务器 架构 数据库 安全对象 权限 主体主体 1.1.2 安全对象安全对象 SQL Server2008的安全机制的安全机制 nSQL Server2008的安全机制可以分为四个级的安全机制可以分为四个级 别:别: q操作系统的安全性操作系统的安全性 qSQL Serv

3、er2008的登录安全性的登录安全性 q数据库的使用安全性数据库的使用安全性 q数据库对象的使用安全性数据库对象的使用安全性 SQL Server 2008 权限 Server 角色 SQL Server 登录 Windows 组 域用户账户 本地用户账户 用户 数据库角色 应用程序角色 组 SQL Server 数据库数据库 Windows 文件 密钥 CREATE ALTER DROP CONTROL CONNECT SELECT EXECUTE UPDATE DELETE INSERT TAKE OWNERSHIP VIEW DEFINITION BACKUP 授予授予/撤销撤销/拒绝拒

4、绝 ACL 服务器 架构 数据库 安全对象 权限 主体主体 1.1.3 SQL Server 2008 权限权限 nWindows 身份验证模式 q用户由 Windows 授权,适用于当数据库仅在组织 内部访问时。 q通过登录而被授予 SQL Server 的访问权 n混合身份验证模式 q用户通过一个受信任连接连接到 SQL Server 并使用 Windows 身份验证来访问 SQL Server q适用于当外界的用户需要访问数据库时或当用户不能使 用WINDOWS域时。 SQL Server 身份验证模式 1.2.1 SQL Server 2008的身份认证模式的身份认证模式 1Windo

5、ws 身份验证模式身份验证模式 当使用Windows身份验证连接到SQL Server时, Microsoft Windows将完全负责对客户端进行身份 验证。 在这种情况下,将按其Windows用户账户来识别 客户端。 当用户通过Windows用户账户进行连接时,SQL Server使用Windows操作系统中的信息验证账户名 和密码,这是SQL Server默认的身份验证模式, 比混合模式安全的多。 1.2.1 SQL Server 2008的身份认证模的身份认证模 式式 2混合身份验证模式混合身份验证模式 n混合验证模式允许以SQL Server身份验证模式或者 Windows身份验证模

6、式来进行验证。 n使用哪个模式取决于在最初的通信时使用的网络库。 n如果一个用户使用TCP/IP Sockets进行登录验证,则 使用SQL Server身份验证模式;如果用户使用命名管 道,则登录时将使用Windows验证模式。 n这种模式能更好地适应用户的各种环境。 1. 设置身份验证模式 通过图形化界面设置身份验证模式通过图形化界面设置身份验证模式 第步第步 :打开:打开SQL Server Management studio,SQL Server Management studio, 使用使用WINDOWSWINDOWS或或SQL SERVERSQL SERVER身份验证建立连接。身份

7、验证建立连接。 第第2 2步步:对象资源管理器:对象资源管理器- -服务器右击服务器右击- -属性属性- -服服 务器属性务器属性 第第3 3步步: 选择安全性选择安全性- -在此设置身份验证模式在此设置身份验证模式 1.3 数据库账户 在SQL Server中,账号有两种:一种是登录服务器的登录账 号,另外一种就是使用数据库的用户账号。登录账号只是让用户 登录到SQL Server中,登录名本身并不能让用户访问服务器中的 数据库。 要访问特定的数据库,还必须具有用户名。用户名在特定的数 据库内创建,并关联一个登录名(当一个用户创建时,必须关联 一个登录名)。通过授权给用户来指定用户可以访问的

8、数据库对 象的权限。 1.3.1 服务器的登录账号 创建登录账号时需要指出该账号使用的 是Windows身份验证还是使用的SQL Server身份验证。 1使用使用Windows身份验证的登录身份验证的登录 2使用使用SQL Server身份验证的登录身份验证的登录 1.3.2 数据库用户账户 一般情况下,用户登录SQL Server实例后,还不具备访问数据库的条 件。在用户可以访问数据库之前,管理员必须为该用户在数据库中建立 一个数据库账号作为访问该数据库的ID。这个过程就是将SQL Server登 录账号映射到需要访问的每个数据库中,这样才能够访问数据库。如果 数据库中没有用户账户,则即使

9、用户能够连接到SQL Server实例也无法 访问到该数据库。 1默认的数据库用户默认的数据库用户 2添加数据库用户添加数据库用户 3删除数据库用户删除数据库用户 创建数据库用户的方法 n创建数据库用户可分为两个过程:创建数据库用户可分为两个过程: q首先创建数据库用户使用的首先创建数据库用户使用的SQL Server2008登登 录名,如果使用内置的登录名则可省略这一步。录名,如果使用内置的登录名则可省略这一步。 q其次为数据库创建用户,指定到创建的登录名。其次为数据库创建用户,指定到创建的登录名。 n用用 SQL Server Management Studio 或或 CREATE USE

10、R 语句创建用户语句创建用户 1.3.1 管理用户的方法管理用户的方法 n下面通过SQL Server Management studio工具来创建数据库用户帐户, 然后给用户授予访问【教务管理系统】数据库的权限。 1、展开【服务器】|【数据库】|【教务管理系统】节点。 2、再展开【安全性】|【用户】节点并右击,选择【新建用户】,打开【数 据库用户-新建】 3、在【用户名】文本框中输入dur_suna来指定要创建的数据库用户名称 4、单击【登录名】文本框旁边的【选项】,打开【选择登录名】窗口,然后 单击【浏览】按钮,弹出【查找对象】对话框。 5、启用suna旁边的复选框,单击确定按钮,返回【选

11、择登录名】窗口,单 击确定,返回【数据库用户-新建】窗口 6、用同样的方式,选择【默认架构】为dbo 7、单击确定按钮 8、为了验证是否创建成功,可以展开用户节点 1.4 固定服务器角色 服务器角色独立于各个数据库。如果 我们在SQL Server中创建一个登录账号 后,要赋予该登录者具有管理服务器的 权限,此时可设置该登录账号为服务器 角色的成员。SQL Server提供了以下固 定服务器角色: 内置服务器角色 1.4.2 服务器角色管理服务器角色管理 通过图形化界面实现服务器角色管理通过图形化界面实现服务器角色管理 第第1步步 以系统管理员身份登录到SQL Server服务器,在登录图标对

12、应的列表项 中,选择登录账号“zhou”的项目双击; 第第2步步 选择“服务器角色” 选项卡,如图8.9所示,选项卡中列出了SQL Server 所有的固定服务器角色,将“System administrators”服务器角色前的复选框选中。 图图8.9 SQL Server服务器角色设置窗口服务器角色设置窗口 1.4.2 服务器角色管理服务器角色管理 2. 利用系统存储过程实现服务器角色管理利用系统存储过程实现服务器角色管理 利用系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色 中,使其成为固定服务器角色的成员。 语法格式语法格式: sp_addsrv

13、rolemember login,role 参数含义: login:添加到固定服务器角色role的登录账号名, 【例例8.6】 将 Windows NT 用户 dreamzhouym 添加到 sysadmin 固定服务器 角色中。 EXEC sp_addsrvrolemember dreamzhouym , sysadmin 1.4.2 服务器角色管理服务器角色管理 利用sp_dropsrvrolemember系统存储过程可从固 定服务器角色中删除SQL Server 登录账号或 Windows NT用户或组。 【例例8.7】从 sysadmin 固定服务器角色中删除登录 zhou。 EXEC

14、 sp_dropsrvrolemember zhou, sysadmin 利用sp_srvrolepermission系统存储过程可以浏 览固定服务器角色的权限。 1.5 数据库角色 固定数据库角色固定数据库角色 授予了管理公共数据库任务的权限 用户定义的数据库角色用户定义的数据库角色 相同数据库权限的多个用户 应用程序角色应用程序角色 包含数据库中所有用户 5.3.3 数据库角色数据库角色 1.5.1 固定的数据库角色固定的数据库角色 1通过管理器工具浏览固定的数据库角色通过管理器工具浏览固定的数据库角色 第步第步 打开对象资源管理器,选择任意一个数据库名。打开对象资源管理器,选择任意一个数

15、据库名。 第第2 2步步 展开数据库的节点,选择展开数据库的节点,选择【安全性安全性】 第第3 3步步 在在【安全性安全性】下选择下选择【角色角色】,展开节点,然后选择,展开节点,然后选择【数数 据库角色据库角色】,就可以看到系统默认的固定数据库角色了,就可以看到系统默认的固定数据库角色了 2.使用系统存储过程浏览固定的数据库角色浏览固定的数据库角色 EXEC SP_HELPdbfixedrole go 1.5.1 固定的数据库角色固定的数据库角色 n1. 固定数据库角色固定数据库角色 n 固定数据库角色定义在数据库级别上,并且有权进行特定数 据库的管理及操作。SQL Server提供了以下固

16、定数据库角色: n (1)db_owner:数据库所有者,可执行数据库的所有管理 操作。 n SQL Server 数据库中的每个对象都有所有者,通常创建该对 象的用户即为其所有者。其他用户只有在相应所有者对其授权后, 方可访问该对象。 n (2)db_accessadmin:数据库访问权限管理者,具有添加、 删除数据库使用者、数据库角色和组的权限。 n 1.5.1 固定的数据库角色固定的数据库角色 n(3)db_securityadmin:数据库安全管理员,可管理数据库中的权限, 如设置数据库表的增、删、修改和查询等存取权限。 n (4)db_ddladmin:数据库DDL管理员,可增加、修

17、改或删除数据 库中的对象。 n (5)db_backupoperator:数据库备份操作员,具有执行数据库备 份的权限。 n (6)db_datareader:数据库数据读取者。 n (7)db_datawriter:数据库数据写入者,具有对表进行增、删修改 的权限。 n (8)db_denydatareader:数据库拒绝数据读取者,不能读取数据 库中任何表的内容 n9)db_denydatawriter:数据库拒绝数据写入者,不能对任何表进行增、 删修改操作。 n (10)public:是一个特殊的数据库角色,每个数据库用户都是 public 角色的成员,因此,不能将用户、组或角色指派为p

18、ublic角色的成 员,也不能删除public角色的成员。通常将一些公共的权限赋给public角 色。 5.5.2 用户自定义数据库角色用户自定义数据库角色 n1通过通过SQL命令创建数据库角色命令创建数据库角色 n 1)定义数据库角色)定义数据库角色 n 语法格式语法格式: n 其中语法中的参数介绍如下: nrole_name 将要创建的角色的名称 nowner_name 该角色拥有者的名字,默认为dbo。其 中owner_name必须是当前数据库里的用户或角色 1.5.2 用户自定义数据库角色用户自定义数据库角色 2通过管理器创建数据库角色通过管理器创建数据库角色 第步:第步: 展开指定的

19、数据库节点。 第第2步步: 选择【安全性】选项,展开【安全性】节点,选择【角色】选项; 第第3步步: 展开【角色】选项下的节点,选择【数据库角色】选项,鼠标右键单击, 选择【新建数据库角色】; 第第4步步: 输入数据库角色的名字,也可以单击【添加】按钮添加数据库成员。 第第5步步: 单击【确定】按钮 1.5.3 应用程序角色 应用程序角色是用户定义数据库角色的一种形式, 与固定数据库角色不同。它规定了某个应用程序的安 全性,用来控制通过某个应用程序对数据的间接访问。 例如,管理员允许雇员使用雇员处理程序录入新员工、 离职员工和打印统计报表等。 1.6 数据库权限 权限提供了一种方法来对特权进行

20、分组,并控制实例、数据库 和数据库对象的维护和实用程序的操作。用户可以具有授予一组 数据库对象的全部特权的管理权限,也可以具有授予管理系统的 全部特权但不允许存取数据的系统权限。 1.6.1 权限概述权限概述 n权限类型: q对象权限 q语句权限 q隐式权限 对于表和视图,拥有者可以授予数据库用户INSERT、UPDATE、 DELETE、SELECT和REFERENCES五种权限。 1.6.2 管理权限 对于用户或角色权限的操作有以下3种状态:授予、废 除和拒绝。用户和角色的权限以记录的形式存储在各个数据 库的sysprotects系统表中。 1授予权限授予权限 GRANT 2撤销权限撤销权

21、限 REVOKE 3拒绝权限拒绝权限 DENY 1.6.2 管理权限管理权限 n1 授予权限授予权限 n 利用GRANT语句可以给数据库用户或数 据库角色赋予执行T-SQL语句的权限及对数据 库对象进行操作的权限。 n 授予执行T-SQL语句的权限。 1.6.2 管理权限 语法格式语法格式: GRANT ALL | statement ,.n TO security_account ,.n 授予对数据库对象操作的权限。 语法格式语法格式: GRANT ALL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON tabl

22、e | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n WITH GRANT OPTION AS group | role 1.6.2 管理权限 n例如:在下面的例子中使用GRANT语句,授予角色 guest对“教务管理系统”数据库中“学生信息”表的 INSERT、UPDATE、DELETE权限 n use 教务管理系统 n go n grant select,update,delete n on 学生信息 n to

23、 guest n go 1.6.2 管理权限 n2. 拒绝权限拒绝权限 n 使用DENY命令可以拒绝给当前数据库内的用户授予的权限,并防止数据库 用户通过其组或角色成员资格继承权限。 n 拒绝语句权限。 n 语法格式语法格式: n DENY ALL | statement ,.n TO security_account ,.n n 拒绝对象权限。 n 语法格式语法格式: n DENY ALL PRIVILEGES | permission ,.n n n ( column ,.n ) ON table | view n | ON table | view ( column ,.n ) n |

24、ON stored_procedure | extended_procedure n | ON user_defined_function n TO security_account ,.n n CASCADE 1.6.2 管理权限 【例例8.18】 首先给 public 角色授予 对于表XS的SELECT 权限,然后,拒绝用户 zhang, wang, Nanjingliu 的特定权限,这样,这些用户就没有对XS表的操作权限了。 USE XSCJ GO GRANT SELECT ON XS TO public GO DENY SELECT, INSERT, UPDATE, DELETE ON

25、 XS TO zhang, wang, dreamzhou GO 【例8.19】首先将在“教务管理系统”数据库的“学生信息”表中执行INSERT操作的权 限授予PUBLIC角色,这样所有的数据库用户都拥有了该项权限。然后,又拒绝了用户 guest拥有该项权限 use 教务管理系统 GO GRANT INSERT ON 学生信息 TO PUBLIC GO DENY INSERT ON 学生信息 TO GUEST 1.6.2 管理权限 n3. 撤消权限撤消权限 n 利用REVOKE命令可取消以前给当前数据库用户授予或拒绝的权限。 n 取消以前授予或拒绝的语句权限。 n 语法格式语法格式: n REVOKE ALL | statement ,.n FROM security_account ,.n n 取消以前授予或拒绝的对象权限。 n 语法格式语法格式: n REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ,.n n ( column ,.n ) ON table | view n | ON table | view ( column ,.n ) n | ON stored_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论