




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1章章 安全与权限安全与权限第第1章章 安全与权限安全与权限 1.1 安全与权限的基础知识安全与权限的基础知识1.1.1 SQL server 2008安全机制的总体策略(1)远程网络主机通过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 Server2008的登录安全性的登录安全性q数据库的使用安全性数据库的使用
3、安全性q数据库对象的使用安全性数据库对象的使用安全性SQL Server 2008 权限Server 角色SQL Server 登录Windows 组域用户账户本地用户账户用户数据库角色应用程序角色组SQL Server数据库数据库Windows文件密钥CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKE OWNERSHIPVIEW DEFINITIONBACKUP授予授予/撤销撤销/拒绝拒绝ACL服务器架构数据库安全对象权限主体主体1.1.3 SQL Server 2008 权限权限nWindows 身份验证模式 q
4、用户由 Windows 授权,适用于当数据库仅在组织内部访问时。 q通过登录而被授予 SQL Server 的访问权 n混合身份验证模式 q用户通过一个受信任连接连接到 SQL Server 并使用 Windows 身份验证来访问 SQL Server q适用于当外界的用户需要访问数据库时或当用户不能使用WINDOWS域时。SQL Server 身份验证模式1.2.1 SQL Server 2008的身份认证模式的身份认证模式 1Windows 身份验证模式身份验证模式 当使用Windows身份验证连接到SQL Server时, Microsoft Windows将完全负责对客户端进行身份验证
5、。在这种情况下,将按其Windows用户账户来识别客户端。当用户通过Windows用户账户进行连接时,SQL Server使用Windows操作系统中的信息验证账户名和密码,这是SQL Server默认的身份验证模式,比混合模式安全的多。 1.2.1 SQL Server 2008的身份认证模的身份认证模式式2混合身份验证模式混合身份验证模式n混合验证模式允许以SQL Server身份验证模式或者Windows身份验证模式来进行验证。n使用哪个模式取决于在最初的通信时使用的网络库。n如果一个用户使用TCP/IP Sockets进行登录验证,则使用SQL Server身份验证模式;如果用户使用命
6、名管道,则登录时将使用Windows验证模式。n这种模式能更好地适应用户的各种环境。 1. 设置身份验证模式 通过图形化界面设置身份验证模式通过图形化界面设置身份验证模式 第步第步 :打开:打开SQL Server Management studio,SQL Server Management studio,使用使用WINDOWSWINDOWS或或SQL SERVERSQL SERVER身份验证建立连接。身份验证建立连接。 第第2 2步步:对象资源管理器:对象资源管理器- -服务器右击服务器右击- -属性属性- -服服务器属性务器属性 第第3 3步步: 选择安全性选择安全性- -在此设置身份验
7、证模式在此设置身份验证模式1.3 数据库账户 在SQL Server中,账号有两种:一种是登录服务器的登录账号,另外一种就是使用数据库的用户账号。登录账号只是让用户登录到SQL Server中,登录名本身并不能让用户访问服务器中的数据库。 要访问特定的数据库,还必须具有用户名。用户名在特定的数据库内创建,并关联一个登录名(当一个用户创建时,必须关联一个登录名)。通过授权给用户来指定用户可以访问的数据库对象的权限。 1.3.1 服务器的登录账号 创建登录账号时需要指出该账号使用的是Windows身份验证还是使用的SQL Server身份验证。 1使用使用Windows身份验证的登录身份验证的登录
8、2使用使用SQL Server身份验证的登录身份验证的登录1.3.2 数据库用户账户 一般情况下,用户登录SQL Server实例后,还不具备访问数据库的条件。在用户可以访问数据库之前,管理员必须为该用户在数据库中建立一个数据库账号作为访问该数据库的ID。这个过程就是将SQL Server登录账号映射到需要访问的每个数据库中,这样才能够访问数据库。如果数据库中没有用户账户,则即使用户能够连接到SQL Server实例也无法访问到该数据库。 1默认的数据库用户默认的数据库用户2添加数据库用户添加数据库用户3删除数据库用户删除数据库用户创建数据库用户的方法n创建数据库用户可分为两个过程:创建数据库
9、用户可分为两个过程:q首先创建数据库用户使用的首先创建数据库用户使用的SQL Server2008登登录名,如果使用内置的登录名则可省略这一步。录名,如果使用内置的登录名则可省略这一步。q其次为数据库创建用户,指定到创建的登录名。其次为数据库创建用户,指定到创建的登录名。n用用 SQL Server Management Studio 或或 CREATE USER 语句创建用户语句创建用户1.3.1 管理用户的方法管理用户的方法n下面通过SQL Server Management studio工具来创建数据库用户帐户,然后给用户授予访问【教务管理系统】数据库的权限。1、展开【服务器】|【数据库
10、】|【教务管理系统】节点。2、再展开【安全性】|【用户】节点并右击,选择【新建用户】,打开【数据库用户-新建】3、在【用户名】文本框中输入dur_suna来指定要创建的数据库用户名称4、单击【登录名】文本框旁边的【选项】,打开【选择登录名】窗口,然后单击【浏览】按钮,弹出【查找对象】对话框。5、启用suna旁边的复选框,单击确定按钮,返回【选择登录名】窗口,单击确定,返回【数据库用户-新建】窗口6、用同样的方式,选择【默认架构】为dbo7、单击确定按钮8、为了验证是否创建成功,可以展开用户节点1.4 固定服务器角色 服务器角色独立于各个数据库。如果我们在SQL Server中创建一个登录账号后
11、,要赋予该登录者具有管理服务器的权限,此时可设置该登录账号为服务器角色的成员。SQL Server提供了以下固定服务器角色: 内置服务器角色角色描述sysadmin可执行任何操作可执行任何操作 dbcreator创建和修改数据库创建和修改数据库 diskadmin管理磁盘文件管理磁盘文件 serveradmin配置服务器级的设置配置服务器级的设置 securityadmin管理和审核服务器登录管理和审核服务器登录 processadmin管理管理 SQL Server 进程进程 bulkadmin执行执行 BULK INSERT 语句语句 setupadmin配置和复制已链接的服务器配置和复制
12、已链接的服务器 1.4.2 服务器角色管理服务器角色管理 通过图形化界面实现服务器角色管理通过图形化界面实现服务器角色管理 第第1步步 以系统管理员身份登录到SQL Server服务器,在登录图标对应的列表项中,选择登录账号“zhou”的项目双击; 第第2步步 选择“服务器角色” 选项卡,如图8.9所示,选项卡中列出了SQL Server所有的固定服务器角色,将“System administrators”服务器角色前的复选框选中。图图8.9 SQL Server服务器角色设置窗口服务器角色设置窗口1.4.2 服务器角色管理服务器角色管理 2. 利用系统存储过程实现服务器角色管理利用系统存储过
13、程实现服务器角色管理 利用系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色中,使其成为固定服务器角色的成员。语法格式语法格式: sp_addsrvrolemember login,role 参数含义: login:添加到固定服务器角色role的登录账号名, 【例例8.6】 将 Windows NT 用户 dreamzhouym 添加到 sysadmin 固定服务器角色中。EXEC sp_addsrvrolemember dreamzhouym , sysadmin 1.4.2 服务器角色管理服务器角色管理利用sp_dropsrvrolemember系统存
14、储过程可从固定服务器角色中删除SQL Server 登录账号或Windows NT用户或组。【例例8.7】从 sysadmin 固定服务器角色中删除登录 zhou。 EXEC sp_dropsrvrolemember zhou, sysadmin 利用sp_srvrolepermission系统存储过程可以浏览固定服务器角色的权限。1.5 数据库角色固定数据库角色固定数据库角色 授予了管理公共数据库任务的权限 用户定义的数据库角色用户定义的数据库角色相同数据库权限的多个用户 应用程序角色应用程序角色包含数据库中所有用户5.3.3 数据库角色数据库角色1.5.1 固定的数据库角色固定的数据库角色
15、 1通过管理器工具浏览固定的数据库角色通过管理器工具浏览固定的数据库角色 第步第步 打开对象资源管理器,选择任意一个数据库名。打开对象资源管理器,选择任意一个数据库名。 第第2 2步步 展开数据库的节点,选择展开数据库的节点,选择【安全性安全性】 第第3 3步步 在在【安全性安全性】下选择下选择【角色角色】,展开节点,然后选择,展开节点,然后选择【数数据库角色据库角色】,就可以看到系统默认的固定数据库角色了,就可以看到系统默认的固定数据库角色了 2.使用系统存储过程浏览固定的数据库角色浏览固定的数据库角色 EXEC SP_HELPdbfixedrole go1.5.1 固定的数据库角色固定的数
16、据库角色n1. 固定数据库角色固定数据库角色n 固定数据库角色定义在数据库级别上,并且有权进行特定数据库的管理及操作。SQL Server提供了以下固定数据库角色:n (1)db_owner:数据库所有者,可执行数据库的所有管理操作。n SQL Server 数据库中的每个对象都有所有者,通常创建该对象的用户即为其所有者。其他用户只有在相应所有者对其授权后,方可访问该对象。n (2)db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和组的权限。n 1.5.1 固定的数据库角色固定的数据库角色n(3)db_securityadmin:数据库安全管理员,可管
17、理数据库中的权限,如设置数据库表的增、删、修改和查询等存取权限。n (4)db_ddladmin:数据库DDL管理员,可增加、修改或删除数据库中的对象。n (5)db_backupoperator:数据库备份操作员,具有执行数据库备份的权限。n (6)db_datareader:数据库数据读取者。n (7)db_datawriter:数据库数据写入者,具有对表进行增、删修改的权限。n (8)db_denydatareader:数据库拒绝数据读取者,不能读取数据库中任何表的内容n9)db_denydatawriter:数据库拒绝数据写入者,不能对任何表进行增、删修改操作。n (10)public
18、:是一个特殊的数据库角色,每个数据库用户都是public 角色的成员,因此,不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。通常将一些公共的权限赋给public角色。5.5.2 用户自定义数据库角色用户自定义数据库角色n1通过通过SQL命令创建数据库角色命令创建数据库角色n 1)定义数据库角色)定义数据库角色n 语法格式语法格式:n 其中语法中的参数介绍如下:nrole_name 将要创建的角色的名称nowner_name 该角色拥有者的名字,默认为dbo。其中owner_name必须是当前数据库里的用户或角色1.5.2 用户自定义数据库角色用户自定义数据库
19、角色2通过管理器创建数据库角色通过管理器创建数据库角色 第步:第步: 展开指定的数据库节点。 第第2步步: 选择【安全性】选项,展开【安全性】节点,选择【角色】选项; 第第3步步: 展开【角色】选项下的节点,选择【数据库角色】选项,鼠标右键单击,选择【新建数据库角色】; 第第4步步: 输入数据库角色的名字,也可以单击【添加】按钮添加数据库成员。 第第5步步: 单击【确定】按钮1.5.3 应用程序角色 应用程序角色是用户定义数据库角色的一种形式,与固定数据库角色不同。它规定了某个应用程序的安全性,用来控制通过某个应用程序对数据的间接访问。例如,管理员允许雇员使用雇员处理程序录入新员工、离职员工和
20、打印统计报表等。 1.6 数据库权限 权限提供了一种方法来对特权进行分组,并控制实例、数据库和数据库对象的维护和实用程序的操作。用户可以具有授予一组数据库对象的全部特权的管理权限,也可以具有授予管理系统的全部特权但不允许存取数据的系统权限。1.6.1 权限概述权限概述n权限类型:q对象权限q语句权限q隐式权限 对于表和视图,拥有者可以授予数据库用户INSERT、UPDATE、DELETE、SELECT和REFERENCES五种权限。1.6.2 管理权限 对于用户或角色权限的操作有以下3种状态:授予、废除和拒绝。用户和角色的权限以记录的形式存储在各个数据库的sysprotects系统表中。1授予
21、权限授予权限 GRANT2撤销权限撤销权限 REVOKE3拒绝权限拒绝权限 DENY1.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 | vi
22、ew | ON table | 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 gon grant select,update,deleten on 学生信息
23、n to guestn go1.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 | ON sto
24、red_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 XS TO
25、zhang, wang, dreamzhou GO【例8.19】首先将在“教务管理系统”数据库的“学生信息”表中执行INSERT操作的权限授予PUBLIC角色,这样所有的数据库用户都拥有了该项权限。然后,又拒绝了用户guest拥有该项权限 use 教务管理系统 GO GRANT INSERT ON 学生信息 TO PUBLIC GO DENY INSERT ON 学生信息 TO GUEST1.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 )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加工承揽意向合同范本
- 出让合同范本
- 买砖合同范本
- 儿女抚养合同范本
- 农村租房建基站合同范本
- 代建合同范本政府盖章
- 世界500强合同范本
- 会务代办合同范本
- 供货定金合同范本
- 别墅门窗出售合同范本
- 七年级下册《平行线的判定》课件与练习
- 2025年中考英语时文阅读 6篇有关电影哪吒2和 DeepSeek的英语阅读(含答案)
- 修高速土方合同范例
- 2024年湖北省武汉市中考语文试卷
- 二零二五年度高品质小区沥青路面翻新施工与道路绿化合同2篇
- 2024年形势与政策复习题库含答案(综合题)
- 工程项目部安全生产治本攻坚三年行动实施方案
- 2024三农新政策解读
- HGE系列电梯安装调试手册(ELS05系统SW00004269,A.4 )
- 酒店前台绩效考核表
- 水利工程水库混凝土防渗墙施工方案
评论
0/150
提交评论