SQLServer安全管理.ppt
《SQLServer安全管理.ppt》由会员分享,可在线阅读,更多相关《SQLServer安全管理.ppt(76页珍藏版)》请在三一办公上搜索。
1、第8章 SQL Server安全管理,8.1 SQL Server 2000的安全.8.2 管理服务器的安全性 8.3 管理数据库用户 8.4 管理角色 8.5 管理权限 8.6 本章总结,学习目标:通过本章学习,你可以学会:SQL Server的安全性机制管理和设计SQL Server登录信息,实现服务器级的安全控制设计和实现数据库级的安全保护机制设计和实现数据库对象级安全保护机制,8.1 SQL Server 2000的安全机制,合理有效的数据库技术安全机制可以既保证被授权用户能够方便地访问数据库中的数据又能够防止非法用户的入侵。SQL Server 2000提供了一套设计完善、操作简单的
2、安全管理机制。SQL Server 2000安全机制可以划分为4个等级。客户机操作系统登录的安全性SQL Server登录的安全性数据库访问的安全性数据库对象使用的安全性,每个安全等级就好像一道门,如果门没有上锁,或者用户拥有开门的钥匙,则用户可以通过这道门达到下一个安全等级,如果通过了所有的门,则用户就可以实现对数据库的访问了。这种关系可以用图8.1来表示。,8.2管理服务器的安全性,对于一个合法的数据库用户,首先必须在SQL Server 2000中为其设置相应的登录账户,否则他不能登录数据库服务器。有两类登录账户,一是SQL Server身份验证的登录账户(以下简称SQL账户),二是Wi
3、ndows身份验证的登录账户(以下简称Windows账户)。SQL账户的登录名称与登录密码由SQL Server 2000系统负责验证,Windows账户的登录名称与登录密码则由Windows 操作系统负责验证。,8.2.1 使用企业管理器管理登录账户,实例8.1利用企业管理器创建一个SQL账户名为test,密码为xxxbjwk,默认数据库为学生库的账户。步骤:,图8.2 创建登录账户,图8.3 创建登录账户,图8.4 分配数据库访问权限,这样使用企业管理器就可以创建一个登录账户。在建立SQL账户实现服务器连接时,用户必须拥有合法的账号和正确的密码。在SQL Server系统中,登录密码并不是
4、必须的。但是用户最好设置密码,没有密码的保护,SQL Server的服务器级安全保护就像没有上锁的大门,知道门的位置(账号)的用户都可以畅通无阻。,上面采用的是SQL账户的创建,如若采用Windows账户登录,则不同之处就是在图8.2中选择Windows身份验证,这时登录名称不能随便键入,它必须是Windows的用户。可以在“域”组合框的下拉菜单中选择域名,然后点击按钮,在弹出的对话框中(如图8.5所示)中选择Windows用户或组,单击“添加”按钮后再单击“确定”按钮,系统自动将该Windows用户或组添加到图8.2的“名称”文本框中如图8.6所示。其他操作与建立SQL账户相同。,图8.5
5、选择Windows登录账户名称,图8.6 建立Windows登录账户,实例8.2对上例创建的test账户进行属性修改。,8.2.2 使用T-SQL语句管理登录账户,管理登录账户也可以使用T-SQL语句,主要是通过存储过程来加以管理,需要注意的是管理Windows账户与SQL账户所使用的系统存储过程不同。1、管理SQL身份验证的登录账户使用系统存储过程管理SQL身份验证的登录账户包括使用系统存储过程创建SQL账户,修改SQL账户的密码,修改SQL账户的默认数据库,修改SQL账户的默认语言,以及删除SQL账户。下面将分别给以介绍。,实例8.3创建一个SQL账户yn_sql,密码为123,默认数据库
6、为学生库。输入如下SQL语句:SP_ADDLOGIN yn_sql,123,学生库执行得到如下结果:,通过上例,我们可归纳出使用系统存储过程创建SQL账户的命令格式:sp_addlogin loginame=新建登录账户的名称,passwd=密码,defdb=默认数据库,defianguage=默认语言命令说明:密码可以默认设置为NULL。全部按上述次序取值时,局部变量名称loginame、passwd、defdb、deflanguage可以省略。,实例8.4 将SQL账户yn_sql 中的密码由123更改为123456。输入如下SQL语句:SP_PASSWORD 123,123456,yn_
7、sql,通过上例,我们可归纳出使用系统存储过程修改SQL账户密码的命令格式:sp_password old=旧的登录密码,new=新的登录密码,loginame=需要更改密码的登录名 命令说明:旧的登录密码,其默认值为NULL;新的登录密码,无默认值;:需要更改密码的登录名必须已经存在。,实例8.5 将SQL账户yn_sql 中的默认语言更改为英语,默认的数据库更改为master。输入如下SQL语句:,通过上例,我们可归纳出使用系统存储过程修改SQL账户默认语言和默认数据库的命令格式:(1)使用系统存储过程修改SQL账户的默认语言 命令格式:sp_defaultlanguageloginnme
8、=登录名,deflanguage=language 命令说明:language是新的数据库默认语言。(2)使用系统存储过程修改SQL账户的默认数据库 命令格式:sp_defaultdb loginnme=登录名,defdb=database 命令说明:database是新的默认数据库的名称。另外还可以使用系统存储过程删除SQL账户 命令格式:sp_droplogin loginnme=登录名如删除SQL账户yn_sql。可使用如下语句:sp_droplogin yn_sql,2、管理Windows身份验证的登录账户实例8.6为Windows XP系统06CC3021493C418域中的账户my
9、user授权登录数据库实例的权利。输入如下SQL语句:sp_grantlogin 06CC3021493C418myuser,这个例子的实质就是使Windows XP上的06CC3021493C418域中的用户myuser成为SQL Server的登录账户,从而能够访问SQL Server数据库。注意,这里的用户名必须是已经存在的,在给出用户名时,必须指定用户或工作组所在的域,并使用定界符将域和用户名括起来。当然,也可以拒绝Windows用户登录,或删除Windows用户。下面给出具体的语法。,(1)向Windows账户授权的语法如下。命令格式:sp_grantlogin loginame=用
10、户或用户组名(2)拒绝一个Windows账户登录的语法如下。命令格式:sp_denylogin loginame:用户或用户组名,例如:拒绝06CC3021493C418域中的用户myuser登录数据库实例,可使用如下语句实现:sp_denylogin 06CC3021493C418myuser(3)删除一个Windows账户的语法如下。命令格式:sp_revokelogin loginame:用户或用户组名 例如:删除06CC3021493C418域中的用户myuser登录数据库实例的权限。可使用如下语句实现:sp_revokelogin 06CC3021493C418myuser,8.2.
11、3 特殊的登录账户sa,SQL Server 2000在安装后自动建立了一个特殊的SQL账户sa,即System Administrator。该账户默认为是所有数据库的dbo用户(数据库所有者),也就是说是任何用户数据库的主任,所以,sa具有最高权限,可以执行服务器范围内的任何操作,且不能被删除。刚安装完毕时,sa没有密码,为了安全起见,一定要为其加入密码。,8.3 管理数据库用户,在实现数据库的安全登录以后,检验用户权限的下一个安全等级就是数据库的访问权,数据库的访问权是通过数据库的用户和登录账户之间的关系来实现。数据库的用户是数据库级的安全实体,就像登录账户是服务器级的安全实体一样。无论是
12、Windows账户还是SQL账户,登录数据库服务器后的其他操作都是相同的。但首先必须获得对数据库的访问权。SQL Server 2000通过为登录账户指派数据库用户来使其获得对数据库的访问权限。,在一个数据库服务器上可能有多个用户创建的不同数据库,除系统管理员外任何普通登录者不可能有权访问所有的数据库,因此SQLServer2000使每个数据库都具有自行创建数据库用户的功能,以达到仅使指定登录账户能够访问本数据库之目的。大家可以观察到在企业管理器的树型结构中,对于用户的管理是归类到每个数据库中的。,8.3.1 使用企业管理器管理数据库用户,对某一个特定数据库的用户管理工作是在该数据库中进行的。
13、只有具有特殊权限的用户(例如数据库所有者)进入到该数据库中才能进行数据库的用户管理。对用户的管理可以是创建,也可以删除。接下来通过实例进行讲解,实例8.7利用企业管理器在学生库中为yn_sql的登录账户创建一用户,名为yn_sql_user。,请大家注意,登录名必须在下拉列表中选择已经建立的账户,或者通过下拉列表中的新建命令创建一个登录账户,因为对某一个特定数据库的用户管理工作是在该数据库中进行的,而该数据库只能是具有登录账号的账户才能使用。,8.3.2 使用T-SQL语句管理数据库用户,实例8.7 假设在数据库服务器中已经建立了两个登录账户06CC3021493C418myuser与sqlu
14、ser。本例在学生库中为Windows账户myuser建立一个数据库用户myuser_01,为SQL账户sqluser建立一个数据库用户sqluser_02。,创建数据库用户的命令格式:sp_grantdbaccess loginnme=登录名,name_in_db=数据库用户名命令说明:当登录名为Windows账户时,须采用“域名登录名”格式;当其为SQL账户名时,采用“登录名”格式。如若省略数据库用户名参数,则默认登录名与用户名相同。,实例8.8 在学生库中删除用户myuser_01和sqluser_02。,删除数据库用户命令格式:sp_revokedbaccess 删除的用户名,8.3.
15、3 特殊的数据库用户dbo和guest,SQLServer2000数据库中有2个特殊用户:dbo和guest。1.dbo 在创建一个数据库时,SQLServer2000自动将创建该数据库的登录账户设置为该数据库的一个用户,并起名为dbo。dbo是数据库的拥有者,不能从数据库中删除,dbo对本数据库拥有所有操作权限,并可以将这些权限全部或部分授予其他数据库用户。另外,属于固定服务器角色sysadmin的成员也映射为所有数据库的dbo。,2.guest当一个登录者登录数据库服务器时,如果该服务器上的所有数据库都没有为其建立用户账户,则该登录者只能访问那些具有guest用户的数据库。系统数据库Mas
16、ter与tempdb中的guest用户不能被删除,而其他数据库中的guest用户可以被添加或删除。,8.4 管理角色,SQL Server在服务器级提供了固定服务器角色,在数据库级提供了数据库级角色。用户可以修改固定数据库级角色的权限,也可以自己创建新的数据库角色,再分配权限给新建的角色。,8.4.1 固定服务器角色,SQL Server 2000的服务器角色是在SQL Server安装时就创建好的,用于分配服务器级管理权限的实体。对数据库服务器操作的权限不能直接赋给其他登录账户,只能使某些登录账户成为固定服务器角色的成员,才能使他们具有这些权限。,SQLServer2000具有如下固定服务器
17、角色:(1)sysadmin,有权在SQLServer中进行任何活动。(2)serveradmin,有权设置服务器一级的配置选项,关闭服务器。(3)setupadmin,有权管理链接服务器和启动过程。(4)securityadmin,有权管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码。(5)processadmin,有权管理在SQLServer中运行的进程。(6)dbcreator,有权创建、更改和除去数据库。(7)diskadmin,有权管理磁盘文件。(8)bulkadmin,有权执行BULKINSERT语句。,1、使用企业管理器管理服务器角色实例8.9将sqlus
18、er账户赋予sysadmin服务器角色,使其能够有权在SQL Server中进行任何活动。,在SQL Server的固定服务器中sysadmin拥有最高的权限,在给sqluser账户赋予了sysadmin服务器角色后,该账户就可以执行服务器范围内的一切操作。,2、使用T-SQL语句管理服务器角色实例8.10使用系统存储过程将固定服务器角色serveradmin分配给Windows账户myuser。,执行上述操作后,06CC3021493C418myuser就拥有了角色serveradmin所拥有的所有权限。对账户进行固定服务器角色分配的命令格式:sp_addsrvrolemember 账户名,
19、固定服务器名 命令说明:如对Windows账户进行分配,须把域名加上。如若收回分配给某登录账户的指定固定服务器角色,可用如下语句:Sp_dropsrvrolemember 06CC3021493C418myuser,serveradmin 这样就回收了分配给登录账户06CC3021493C418myuser的固定服务器角色serveradmin。,SQL Server在数据库级设置了固定数据库角色来提供最基本的数据库权限的综合管理。SQLServer2000中的数据库角色用于对单个数据库的操作。每个数据库都有一系列固定数据库角色,尽管在不同的数据库内他们是同名的,但各自的作用范围都仅限于本数据
20、库。,8.4.2 固定的数据库角色,SQLServer2000具有如下固定数据库角色:(1)db_owner,在数据库中具有全部权限。(2)db_accessadmin,有权添加或删除数据库用户。(3)db_securityadmin,有权管理全部权限、对象所有权、角色和角色成员资格(4)db_ddladmin,有权发出ALLDDL,但不能发出GRANT、REVOKE或DENY语句。(5)db_backupoperator,有权发出DBCC、CHECKPOINT和BACKUP语句。(6)db_datareader,有权查询数据库内任何用户表中的所有数据。(7)db_datawriter,有权更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLServer 安全管理
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5449388.html