您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库课后题答案 第八章 管理SQL Server的安全性
第八章SQLServer的安全性要点:SQLServer2000两级权限管理机制登陆帐户和服务器角色数据库用户和数据库角色权限的管理第一节SQLServer2000安全性概述作为一种数据库管理系统,SQLServer2000系统中存储了用户大量的业务数据,这些数据都是用户的商业机密。这些商业数据必须得到安全保障。安全性管理是数据库管理系统的一个重要组成部分。安全性就是确保只有授权的用户才能使用数据库中的数据和执行相应的操作,安全性管理包括两个方面的内容,一是用户能否登录系统和如何登录的管理,二是用户能否使用数据库中的对象和执行相应操作的管理。SQLServer2000提供了一套完整的安全机制。一、认证进程和认证模式认证进程就是指当用户访问数据库系统时,系统对该用户帐号和口令的确认过程,认证的内容包括确认用户的帐号是否有效、是否能访问系统、能访问系统中的哪些数据等。认证模式就是指系统选择何种认证进程确认用户的方式。用户必须使用一个登录帐号,才能连接到SQLServer系统中。SQLServer系统通过两种认证进程来确认用户的身份,这两种认证进程是:(1)WINDOWS认证进程(2)SQLServer认证进程当SQLServer在WINDOWS环境中运行时,系统管理员必须指定系统的认证模式类型。认证模式类型有两种:(1)WINDOWS认证模式(2)混合模式WINDOWS认证模式只允许使用WINDOWS认证进程。这时,用户不能指SQLServer的登录帐号。混合认证模式既允许使用WINDOWS认证进程,又允许使用SQLServer认证进程。在混合认证模式中,当某个用户希望登录SQLServer系统时,系统是采用WINDOWS认证进程还是采用SQLServer认证进程取决于该用户连接到系统的网络协议类型。注意:在SQLServer系统中,除了网络协议Namedpipes和TCP/IP,其他的网络通信协议都是非信任连接协议。举例说明:首先在SQLServer中建立一个登录帐户:选中服务器下的“安全性”-》“登录”,右单击选择“新建登录”,在弹出的菜单常规选项卡中输入“帐号”例如:hello,选择SQLServer身份验证,输入密码:123456,在“服务器角色”卡中选择相应的服务器角色,例如选择:securityadministrators和databasescreators,在“数据库访问”卡中选择允许该帐号访问的数据库名,例如选择:studentborrow数据库。单击确定,这样登录帐号:hello就建立完成了。此时,我们在服务器名右单击选择“编辑SQLServer注册属性”,在弹出的对话框中选择使用SQLServer身份验证,这时在登录名处输入新建立的帐号:hello,选择总是提示输入用户名和密码,输入密码:123456,单击“确定”,然后重新打开SQLServer,此时提示我们输入用户名和密码,并且只能创建数据库和只能访问studentborrow数据库。如果我们在服务器上右单击选择属性,在“安全性”卡片上可以选择认证模式,如果选择“仅WINDOWS认证”,那么在重复刚才的操作,就不能够进入了,因为此时仅仅WINDOWS帐号才可以访问SQLServer。二、帐号验证SQLServer的安全性机制可以划分为4个等级:(1)客户机操作系统的安全性(2)SQLServer的登录安全性(3)数据库的使用安全性(4)数据库对象的使用安全性因而使用数据库的帐户也应从四个方面进行验证1、操作系统级别的验证2、服务器级别的验证SQLServer服务器级别安全性建立在控制服务器登录帐户和密码的基础上也就是前面所说的两种认证模式:WINDOWS认证模式和混合模式。3、数据库级别的验证在默认情况下,数据库的所有者可以访问该数据库的对象,还可以分配访问权给别的用户,以便让别的用户也拥有针对该数据库的访问权利。4、数据库对象级别的验证默认情况下,只有数据库的所有者可以在该数据库下进行操作。当一个非数据库所有者想访问数据库里的对象时,必须事先由数据库的所有者赋予该用户对指定对象的执行特定操作的权限。第二节登录帐号管理一、标准的SQL帐户管理1、帐户的建立方式有三种:使用查询分析器,通过系统提供的存储过程;通过SQLServer企业管理器;使用SQLServer提供的创建登录向导存储过程:sp_addlogin建立标准登录帐户语法:sp_addlogin[@loginame=]’ligin’[,[@passwd=]’psaaword’][,[@=defab]’database’][,[@eflanguage=]’language’]2、修改和删除帐户使用系统存储过程sp_defaultdb修改登录帐户的默认数据库使用系统存储过程sp_defaultlanguage修改登录帐户的默认语言使用系统存储过程sp_password修改登录帐户的密码使用系统存储过程sp_droplogin来删除SQLServer标准登录帐户3、注意:(1)在SQLServer中删除帐户信息时,有如下限制:已经映射到数据库用户的帐户不允许被删除系统帐户SA不能被删除,正在使用的帐户不能被删除拥有数据库的帐户不能被删除(2)在进行修改和删除操作时用到的所有存储过程和使用企业管理器进行的有关帐户、密码、角色、权限的操作,都只有被赋予SYSADMIN或securityadmin固定服务器角色的帐户才可以使用。二、与WINDOWS集成的帐户管理1、帐户的建立与标准的SQL帐户管理类似,在此仅介绍用系统存储过程的方法:使用系统存储过程sp_grantlogin来使WINDOWS的用户或工作组映射为SQLServer的登录帐户。语法:sp_grantlogin[@loginame=]’login’2、删除Windows帐户sp_revokelogin可是从SQLServer中删除用sp_grantlogin创建的Windows帐户语法:sp_revokelogin[@loginame=]’login’3、拒绝登录帐户使用系统存储过程sp_denylogin可以设置不允许Windows的工作组或用户联接到SQLServer服务器。语法:sp_denylogin[@loginame=]’login’第三节服务器角色管理角色是SQLServer2000引进的用来集中管理数据库或服务器权限的概念。SQLServer在服务器级提供了固定服务器角色,用户不能增加、修改和删除服务器角色。一、固定服务器角色1、固定服务器角色服务器角色是一些系统定义好操作权限的用户组,其中的成员是登录帐户。服务器角色不能增加或删除,只能对其中的成员进行修改。服务器角色是SQLServer在安装是就创建好的用于分配服务器级管理权限的实体。常用的固定服务器角色有:sysadmin、serveradmin、securityadmin、dbcreator、diskadmin、processadmin、setupadmin和bulkadmin。2、浏览服务器角色使用系统存储过程sp_helpsrvrole浏览服务器角色语法:sp_helpsrvrole[[@srvrolename=]’role’]二、管理服务器角色成员一个登录帐户可以不属于任何角色,也可以同时属于多个角色。将一个登录帐户加入一个角色,可以令使用该帐户登录的用户自动的具有角色预定义的权限。Windows系统管理员组自动属于sysadmin角色1、使用系统存储过程更改服务器角色成员(1)将一个帐户加入一个服务器角色,可使用系统存储过程sp_addsrcrolemember语法:sp_addsrcrolemember[@loginame=]’login’[@rolename=]’role’(2)将某个帐户从服务器角色中删除,可以使用系统存储过程sp_dropsrvrolemember系统存储过程sp_dropsrvrolemember的功能是收回分配给某登录帐户的指定固定服务器角色。语法:sp_dropsrvrolemember[@loginame=]’login’,[@rolename=]’role’2、可以使用企业管理器更改服务器角色成员三、服务器角色的权限1、固定服务器角色的权限(1)sysadmin拥有最高的权限,可以执行服务器范围内的一切操作.(2)Securityadmin可以在服务器范围内进行有关权限的一切管理操作。如管理登录帐户,管理数据库对象权限,阅读日志文件等。(3)Serveradmin可以设置服务器范围的配置选项,关闭服务器。(4)Dbcreator可以创建、更改和除去数据库(5)Setupadmin可以管理链接服务器和启动过程(6)Processadmin可以管理在SQLServer中运行的进程(7)Diskadmin可以管理磁盘文件(8)Bulkadmin可以执行bulkinsert语句2、可以使用系统存储过程sp_srvrolepermission浏览固定服务器角色的权限语法:sp_srvrolepermission[[@srvrolename=]’role’]第四节数据库角色管理为了更高效的管理数据库用户的权限,SQLServer在数据库级提供了固定的数据库级角色。用户不能修改固定数据库级角色的权限,也不能删除固定数据库级角色。但用户可以自己创建新的数据库角色,在分配权限给新建的角色。一、固定数据库角色固定数据库角色是在每个数据库中都定义的预定义组。管理员可以将一个用户加入一个或多个数据库角色中。固定数据库角色不能被添加、修改或删除。SQLServer在数据库级设置了固定数据库角色来提供最基本的数据库权限的总和管理。1、使用系统存储过程sp_helpdbfixedrole浏览固定数据库角色语法:sp_helpdbfixedrole[[@rolename=]’role’]例如:execsp_helpdbfixedrole2、固定数据库角色的权限public:维持所有的默认权限db_owner:可以执行所有数据库角色的活动db_accessadmin:可以加入或删除数据库用户、组和角色db_ddladmin:可以加入、修改或删除数据库对象db_securityadmin:管理角色、角色成员,管理对象和语句权限db_backupoperator:备份数据库db_datareader:可以从所有表中读数据db_datawriter:可以在所有表中增加、修改或删除数据db_denydatareader:看不到数据库任何数据db_denydatawriter:不能改变任何表的数据3、管理固定数据库角色成员(1)使用系统存储过程sp_addrolemember将某个登录帐户加入某个固定数据库角色。语法:sp_addrolemember[@rolename=]’role’,[@membername=]’security_account’(2)使用系统存储过程sp_droprolemember从某个固定数据库角色中删除指定的登录帐户。语法:sp_droprolemember[@rolename=]’role’,[@membername=]’security_account’4、角色的应用(1)public角色在前面提到的数据库角色中,SQLServer还有一个特殊的数据库角色public。所有的数据库用户都属于public角色。Public角色的特点是:替数据库用户捕获所有的数据库默认权限不能将public角色分配给任何用户、工作组,因为所有用户都默认为属于该角色public角色存在于每一个数据库中,包括系统数据库和用户建立的数据库public角色不允许被删除(2)sysadmin角色与dbo在所有数据库用户中,特殊用户dbo具有最高的管理权限。它被认为是所有数据库对象的所有者,可以访问所有的数据库对象,可以在数据库范围内执行一切操作。在固定数据库级角色和dbo之间有着一种奇特的对应关系。任何被赋予sysadmin固定服务器角色的用户
本文标题:数据库课后题答案 第八章 管理SQL Server的安全性
链接地址:https://www.777doc.com/doc-1263046 .html