SQL应用基础第八章SQL-Server的安全课件_第1页
SQL应用基础第八章SQL-Server的安全课件_第2页
SQL应用基础第八章SQL-Server的安全课件_第3页
SQL应用基础第八章SQL-Server的安全课件_第4页
SQL应用基础第八章SQL-Server的安全课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章SQL Server的安全 学习目标 了解SQL Server 2000安全管理机制;掌握登录帐户和服务器角色的设置;掌握数据库用户和数据库角色的设置;掌握权限管理的方法。学习重点 登录帐户;数据库用户;服务器角色与数据库角色;SQL Server 2000的权限管理。8.1 SQL Server 2000的安全机制SQL Server 2000的安全机制可以划分为4个等级 8.1 SQL Server 2000的安全机制第一级:客户端操作系统的安全性第二级:SQL Server 2000登录安全性若要连接到 Microsoft SQL Server 2000 实例,需要给SQL Ser

2、ver 2000客户端应用程序提供下面中的信息: 运行 SQL Server 2000实例的计算机所在的网络名称实例名(可选,只有在连接到命名实例时才需要)登录标识符 (ID)8.1 SQL Server 2000的安全机制SQL Server 2000提供的身份验证模式有两种,即:1.Windows身份验证模式2. Windows和SQL Server验证模式8.1 SQL Server 2000的安全机制第三级:数据库使用的安全性第四级:数据库对象使用的安全性8.2 登录帐户和服务器角色可以使用企业管理器来设置SQL Server 的身份验证模式 使用企业管理器添加标准SQL Server

3、登录帐户8.2.2 添加标准SQL Server 身份登录帐户使用T-SQL添加标准SQL Server登录帐户的语法格式为:sp_addlogin loginame = login , passwd = password , defdb = database , deflanguage = language 8.2.2 添加标准SQL Server 身份登录帐户例8.1创建了一个名叫“zhl”,密码是“88908123”,默认数据库为“students”的标准SQL Server登录帐户 EXEC sp_addlogin zhl, 88908123, students GO8.2.2 添加标

4、准SQL Server 身份登录帐户使用系统存储过程sp_defaultdb修改默认数据库。语法格式:sp_defaultdb loginame = login , defdb = database8.2.2 添加标准SQL Server 身份登录帐户使用系统存储过程sp_defaultlanguage修改登录帐户的默认语言。语法格式: sp_defaultlanguage loginame = login , language = language 8.2.2 添加标准SQL Server 身份登录帐户例8.2 将 pubs 设置为用户 zhl的默认数据库。EXEC sp_defaultdb

5、 zhl, pubs例8.3 将 zhl帐户连接的默认英语设置为English。EXEC sp_defaultlanguage, zhl, English8.2.2 添加标准SQL Server 身份登录帐户使用系统存储过程sp_password修改登录帐户的密码。语法格式:sp_passwordold=old_password,new=new_password8.2.2 添加标准SQL Server 身份登录帐户使用系统存储过程sp_droplogin删除SQL Server标准登录帐户。语法格式: sp_droplogin loginame = login8.2.2 添加标准SQL Ser

6、ver 身份登录帐户在SQL Server中删除帐户信息时,有如下限制:已经映射到数据库用户的帐户不允许被删除;系统帐户sa不能被删除,正在使用的帐户不能被删除;拥有数据库的帐户不能被删除。 8.2.2 添加标准SQL Server 身份登录帐户例8.4 将 zhl帐户连接的密码由88908123设置为88999988EXEC sp_password 88908123, 88999988, zhl例8.5 删除zhl标准帐户。 EXEC sp_droplogin, zhl8.2.3 添加Windows身份验证登录帐户添加Windows身份验证登录帐户 所谓与Windows集成的登录帐户,实际上

7、是将Windows的用户和工作组映射为SQL Server的登录帐户。使用T-SQL添加Windows登录帐户语法格式:sp_grantlogin loginame = login8.2.3 添加Windows身份验证登录帐户例8.6 WINDOWS操作系统中已存在域cdny,用户js,现将其添加为SQL Server登录。sp_grantlogin cdnyjs或sp_grantlogin cdnyjs 8.2.3 添加Windows身份验证登录帐户使用系统存储过程sp_revokelogin可以从SQL Server中删除用sp_grantlogin创建的Windows用户或组的登录项。语

8、法格式:sp_revokelogin loginame = login8.2.3 添加Windows身份验证登录帐户拒绝Windows帐户登录使用系统存储过程sp_denylogin可以设置不允许Windows的工作组或用户连接SQL Server服务器。语法格式:sp_denylogin loginame = login 8.2.3 添加Windows身份验证登录帐户例8.7 删除cdnystudent帐户或工作组的登录。EXEC sp_revokelogin cdnystudent 例8.8 拒绝cdny/student帐户登录SQL Server。EXEC sp_denylogin cd

9、nystudent8.2.4 特殊登录帐户sa特殊登录帐户sa sa帐户拥有服务器和所有的数据库,即sa拥有最高的管理权限,可以执行服务器范围内的所有操作。sa帐户无法删除。 8.2.5 服务器角色固定服务器角色用于对登录帐户授予服务器范围内的安全权限。System administrators 可执行SQL Server安装中的任何操作Security administrators 可管理服务器的登录Server administratorsq 可配置服务器范围的设置Setup administrators可以管理扩展的存储过程Process administrators可以管理运行在SQL

10、 Server中的进程Disk administrators 可以管理磁盘文件Database creators 可以创建和更改数据库Bulk inset administrators 可以执行大容量插入操作8.2.5 服务器角色使用系统存储过程浏览服务器角色:Sp_helpsrvrolesrvrolename=role其中srvrolename=role是指固定服务器角色的名称例8.9 使用sp_helpsrvrole存储过程浏览本地服务器角色。EXEC sp_helpsrvrole8.2.5 服务器角色将一个帐户加入一个服务器角色,也可使用系统存储过程sp_addsrvrolemember

11、。语法格式:sp_addsrvrolemember loginame = loginrolename = role8.2.5 服务器角色例8.10 将固定服务器角色sysadmin分配给了登录帐户cdnystudent1,使cdnystudent1拥有了角色sysadmin所拥有的所有权限。EXEC sp_addsrvrolemember cdnystudent1 sysadmin 8.2.5 服务器角色使用系统存储过程浏览固定服务器角色的权限语法格式:sp_srvrolepermissionsrvrolename=role 例8.11 EXEC sp_srvrolepermission sy

12、sadmin -显示sysadmin角色的权限。EXEC sp_srvrolepermission -显示所有固定服务器角色的权限。 8.3.1 数据库用户对于每个要求访问数据库的登录,应将其帐户添加到数据库,成为数据库用户。如果登录帐户不是数据库用户,则登录账户还是无法访问数据库。1使用企业管理器添加数据库用户使用T-SQL添加数据库用户8.3.1 数据库用户使用T-SQL添加数据库用户语法格式:sp_grantdbaccess loginame=login,name_in_db= name_in_db OUTPUT8.3.1 数据库用户例8.12 在pubs数据库中为 Windows NT

13、 用户 cdnyleijin 添加帐户,并取名为 leijin。Use pubsGOEXEC sp_grantdbaccess cdnyleijin , leijinGO8.3.2 删除数据库用户使用企业管理器删除数据库用户2使用系统存储过程sp_revokedbaccess删除数据库用户语法格式:sp_revokedbaccess name_in_db = name8.3.2 删除数据库用户例8.13 删除数据库用户leijin。USE pubsGOEXEC sp_revokedbaccess leijinGO8.3.2 删除数据库用户注意:revokedbaccess 存储过程不能删除以下

14、内容: dbo 、guest内置用户帐户;数据库中的固定角色。Windows NT 组中的 Windows NT 用户。 在用户定义事务内部不能执行 sp_revokedbaccess8.3.3 内置用户帐户dbo用户(1)dbo 是具有在数据库范围内执行一切操作的内置用户。它是数据库的所有者。(2)固定服务器角色sysadmin的任何成员都映射到每个数据库内称为dbo 的一个特殊用户上。另外,由固定服务器角色sysadmin的任何成员创建的任何对象都自动属于dbo。(3)无法删除 dbo 用户,且此用户始终出现在每个数据库中。8.3.3 内置用户帐户(4)只有由 sysadmin 固定服务器

15、角色成员(或 dbo 用户)创建的对象才属于 dbo。由任何其他也不是 syadmin 固定服务器角色成员的用户(包括 db_owner 固定数据库角色成员)创建的对象: 属于创建该对象的用户,而不是 dbo。用创建该对象的用户名限定。(5)它的用户ID(UID)总是18.3.3 内置用户帐户guest用户(1)guest 用户帐户允许没有用户帐户的登录访问数据库。 (2)可以在除 master 和 tempdb 外(在这两个数据库中它必须始终存在)的所有数据库中添加或删除 guest 用户。 8.3.3 内置用户帐户(3)guest用户的存在意味着所有登录到SQL Server服务器的用户都

16、可以访问数据库,即使它还没有成为本数据库的用户。(4)默认情况下,新建的数据库中没有 guest 用户帐户。 8.3.3 内置用户帐户例8.14将 guest 用户帐户添加到名为 students 的数据库中。USE studentsGOEXECUTE sp_grantdbaccess guestGO8.3.4 数据库角色固定数据库角色是在每个数据库中都存在的预定义组。数据库管理员可以将一个用户加入到一个或多个数据库角色中。固定数据库角色不能被添加、修改或删除。SQL Server在数据库级别上设置了固定数据库角色来提供基本的数据库权限管理。 8.3.4 数据库角色固定数据库角色 描述db_o

17、wner 数据库所有者db_accessadmin 数据库访问管理员db_securityadmin 数据库安全管理员db_ddladmin 数据库 DDL 管理员db_backupoperator 数据库备份操作员db_datareader 数据库数据读取者db_datawriter 数据库数据写入者db_denydatareader 数据库拒绝数据读取者db_denydatawriter 数据库拒绝数据写入者8.3.5 管理数据库角色系统存储过程sp_addrole在当前数据库中创建新的数据库角色语法格式:sp_addrole rolename = role , ownername = o

18、wner 8.3.5 管理数据库角色例8.15 将名为 teacher的新角色添加到studnets数据库中。EXEC sp_addrole teacher8.3.5 管理数据库角色系统存储过程sp_addrolemember将某个数据库用户加入到某个数据库角色中语法格式:sp_addrolemember rolename = role , membername = security_account8.3.5 管理数据库角色例8.16将数据库用户加入到students数据库teacher角色中A. 添加 Windows NT 用户将 Windows NT 登录帐户cdnyzhl 添加到 stu

19、dents 数据库,使其成为数据库用户 jszhl。然后,再将 jszhl 添加到students数据库的 teacher 角色中。USE studentsGOEXEC sp_grantdbaccess cdnyzhl, jszhlGOEXEC sp_addrolemember teacher, jszhl8.3.5 管理数据库角色B. 添加 SQL Server 用户将 SQL Server 用户 leijin添加到studetns数据库中的teacher角色。EXEC sp_addrolemember teacher, leijin 8.3.5 管理数据库角色系统存储过程sp_dropro

20、lemember从当前数据库中的数据库角色中删除安全帐户语法格式:sp_droprolemember rolename = role , membername = security_account8.3.5 管理数据库角色例8.17 从角色teacher 中删除用户leijin。EXEC sp_droprolemember teacher, leijin8.3.5 管理数据库角色角色应用(1)public 角色public 角色是一个特殊的数据库角色,每个数据库用户都属于它。public 角色捕获数据库中用户的所有默认权限。无法将用户、组或角色指派给public 角色,因为默认情况下它们即属于

21、该角色。public 角色含在每个数据库中,包括 master、msdb、tempdb、model 和所有用户数据库。无法除去public 角色。8.3.5 管理数据库角色(2)应用程序角色应用程序角色是一种特殊的数据库角色。应用程序角色不包含任何成员,用户不允许添加到该角色中。8. 4 权限管理SQL Server 2000 中的权限分为三种:对象权限、语句权限和隐含权限1.对象权限是指数据库用户对数据库中的表、存储过程、视图等对象的操作权限。 2.隐含权限是指系统预定义的服务器角色或数据库角色,或数据库所有者和数据库对象所有者拥有的权限。隐含权限不能明确地赋予和撤销。 8. 4 权限管理3

22、.语句权限指是否可以执行某些T-SQL命令的权限。具体包括:CREATE DATABASE:创建一个新数据库及存储该数据库的文件BACKUP DATABASE:备份整个数据库BACKUP LOG:备份事务日志CREATE DEFAULT:创建称为默认值的对象CREATE FUNCTION:创建用户定义函数CREATE PROCEDURE:创建存储过程CREATE RULE:创建规则CREATE TABLE:创建表CREATE VIEW:创建视图8. 4 权限管理权限管理包含以下三方面的内容: 授予权限 拒绝权限 取消权限 管理权限的方法有两种:一是使用T-SQL语句,二是通过企业管理器。8.

23、4 权限管理(1)授予权限授予对象权限的语法格式如下:GRANTALL PRIVILEGES | permission,.n (column ,.n) ON table | view | ON table | view (column,.n) | ON stored_procedure TO security_account ,.nWITH GRANT OPTION8. 4 权限管理授予命令权限语法格式:GRANT ALL statement ,.nTO security_account ,.n8. 4 权限管理例8.18 将“students”数据库的“stu”表中查询数据的权限授予了public角色,将在“stu”表中执行INSERT操作的权限授予了yq。USE studentsGOGRANT SELECT ON stu TO publicGOGRANT INSERT ON stuTo yq8. 4 权限管理(2)撤销权限撤销语句权限。语法格式:REVOKE ALL | statement ,.n FROM security_acc

温馨提示

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

评论

0/150

提交评论