【精品】sql server安全(可编辑).ppt
《【精品】sql server安全(可编辑).ppt》由会员分享,可在线阅读,更多相关《【精品】sql server安全(可编辑).ppt(140页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、SQL Server安全管理6.1 SQL Server安全体系结构安全体系结构v6.1.1 操作系统的安全性 v6.1.2 SQL Server 的安全性v6.1.3 数据库的安全性v6.1.6 SQL Server数据库对象的安全性vSQL Server 2005的安全性机制主要包括以下几个方面的内容:uSQL Server 2005客户机的安全机制。客户机的安全机制。uSQL Server 2005服务器的安全机制。服务器的安全机制。u数据库的的安全机制。数据库的的安全机制。u数据对象的安全机制。数据对象的安全机制。6.1 SQL Server安全体系结构安全体系结构第六章 SQL Se
2、rver安全管理u SQL Server 2005的安全有两方面内容:其一、是防止非法登录者或非授权用户对SQL Server数据库或数据造成破坏。u二、有时合法用户不小心对数据库的数据做了不正确的操作,或者保存数据库文件的磁盘遭到损坏。uSQL Server 2005服务器因某种不可预见的事情而导致崩溃。v在在SQL Server 2005中,通过其内置的各种中,通过其内置的各种v限验证来保障前者的安全,提供数据库备份限验证来保障前者的安全,提供数据库备份v还原方案来解决后者造成的损失。还原方案来解决后者造成的损失。v 6.1 SQL Server安全的相关概念安全的相关概念u服务器安全性
3、在SQL Server 2005中,要访问其服务器,首先要有服器级的“连接权连接权”,即要有SQL Server 2005服务器的登录账登录账号号;u数据库安全性登录到SQL Server 2005服务器以后,在访问SQL Server 2005中某个数据库之前还要有一个数据库用户账号用户账号,这个账号是由登录账号映射而来的,数据库用户必须是服务器的登录用户;数据库对象安全性当对某个数据库的对象(如数据表、视图等)执行操作时,SQL Server 2005还根据该账号的数据库角色来决定是否允许用户执行它所请求的操作。6.1.2 角色 v SQL Server 2005的角色与Windows中的
4、用户组概念相似,在SQL Server 2005可以理解为一些权限的集合。v 在SQL Server 2005中,具有两种类型的角色:v服务器角色:服务器角色决定登录到SQL Server 2005服务器的用户对服务器中数据库的操作权限。v数据库角色。数据库角色决定数据库用户对数据库中对象具有的操作权限。v因此,系统管理员给适当的用户分配相应的角色就是SQL Server 2005服务器和数据库安全的关键之一。6.1.3 许可权限v许可权限是指授予用户对数据库中的具体对象的操作权力或SQL语句的使用权力。v在SQL Server 2005中,用户能够访问的具体对象(如数据表、视图、存储过程等)
5、是需要明确授权的。v 一般情况下,任何用户都具有数据表或视图的数据的读(Select)权限,但对于插入(Insert)、更新(Update)和删除(Delete)权限,则需要明确授予。v系统管理员或数据库(对象)拥有者给予适当的用户以适当的权限是保证数据库安全的重要措施。6.2 服务器的安全性管理服务器的安全性管理 服务器的安全性是通过设置系统登录账户的权限进行管理的。用户在连接到SQL Server 2005时与登录账户相关联。在SQL Server 2005中有两类登录账户:一类是登录服务器的登录账号(login name);另外一类是使用数据库的用户账号(user name)。登录账号是
6、指能登录到SQL Server 2005的账号,它属于服务器的层面,本身并不能让用户访问服务器中的数据库,而登录者要求使用服务器中的数据库时,必须要有用户账号才能存取数据库。v就如同公司门口先刷卡进入(登录服务器),然后再拿钥匙打开自己的办公室(进入数据库)一样。用户名要在特定的数据库内创建并关联一个登录名(当一个用户创建时,必须关联一个登录名)。v用户定义的信息存放在服务器的每个数据库的sysusers表中,用户设有密码同其相关联。SQL Server 2005通过授权给用户指定可以访问的数据库对象的权限。vSQL Server 2005中有一个超级登录账号sa。这个账号具有操作SQL Se
7、rver服务器的一切权限。也正因为如此,保证这个账号的安全就是一个十分重要的问题。要保护SQL Server 2005服务器的安全,首要的问题就是要保证sa账号的安全。v在SQL Server 2005系统安装以后,系统自动创建sa账号,但其密码为空。这是一个尽人皆知的事实。因此,用户在安装SQL Server 2005系统以后,首先要做的工作就是为此账号设置一个密码。需要说明的是,有相当一部分系统管理员为了省事,不为sa账号设置密码。这样做,无疑为SQL Server 2005数据库系统留下十分危险的隐患。设置sa账号密码的具体方法见6.2.3小节。v6.2.1 查看登录账号v6.2.2 创
8、建一个登录账号v6.2.3 更改、删除登录账号属性v6.2.4 禁止登录账号v6.2.5 删除登录账号v角色(角色(Role)是一组用户所构成的组,可分为服)是一组用户所构成的组,可分为服务器角色与数据库角色。以下介绍服务器角色。务器角色与数据库角色。以下介绍服务器角色。v服务器角色是负责管理与维护服务器角色是负责管理与维护SQL Server 2005的的组,一般指定需要管理服务器的登录账号属于服务组,一般指定需要管理服务器的登录账号属于服务器角色。器角色。SQL Server 2005在安装过程中定义几个在安装过程中定义几个固定的服务器角色,其具体权限如表固定的服务器角色,其具体权限如表6
9、-1所示。所示。表6-1 内建服务器角色固定服务器角固定服务器角色色描描 述述sysadmin全称为全称为System Administrators,可在,可在SQL Server中执行任中执行任何活动何活动serveradmin全称为全称为Server Administrators,可设置服务器范围的配置选,可设置服务器范围的配置选项,关闭服务器项,关闭服务器setupadmin全称为全称为Setup Administrators,可管理连接服务器和启动过,可管理连接服务器和启动过程程securityadmin全称为全称为Security Administrators,可管理服务器登录、读取
10、,可管理服务器登录、读取错误日志和更改密码错误日志和更改密码processadmin全称为全称为Setup Administrators,可管理连接服务器和启动过,可管理连接服务器和启动过程程dbcreator全称为全称为Database Creators,以以创建、更改和删除数据库,以以创建、更改和删除数据库diskadmin全称为全称为Disk Administrators,可以管理磁盘文件,可以管理磁盘文件bulkadmin全称为全称为Bulk Insert Administrators,可以执行大容量插入,可以执行大容量插入public所有用户都具有的一个角色所有用户都具有的一个角色6
11、.2.1 查看登录账号v在安装SQL Server 2005以后,系统默认创建几个登录账号。v打开“SQL Server Management Studio”窗口,在“对象资源管理器”窗格中展开要查看的SQL Server服务器结点,再展开“安全性”结点,展开并选中“登录名”结点,即可看到系统创建的默认登录账号及已建立的其他登录账号,如图6-2所示。图6-2 查看服务器登录账号 v其中,BUILTINAdministrators、域名Administrator和sa是默认的登录账号,它们的含义如下:lBUILTINAdministrators:凡是Windows NT Server/2000中
12、的Administrators组的账号都允许作为SQL Server 2005登录账号使用。l域名Administrator:允许Windows NT Server的Administrator 账号作为SQL Server登录账号使用。lsa:SQL Server 2005系统管理员登录账号,该账号拥有最高的管理权限,可以执行服务器范围内的所有操作。通常SQL Server 2005管理员也是Windows NT或Windows 2000/2003的管理员。6.2.2创建一个登录账号v 要登录到SQL Server 2005必须具有一个登录账号,创建一个登录账号的操作步骤如下:v(1)在“SQ
13、L Server Management Studio”窗口的“对象资源管理器”窗格中,依次展开SQL服务器、“安全性”、“登录名”结点,右击“登录名”结点(或右击右侧的“详细区域”),在弹出的快捷菜单中选择“新建登录名”命令,打开“SQL Server登录属性”对话框,如图6-3所示。v(2)在“登录名”文本框中输入要创建的登录账号的名称,如studentadm,选择需要的身份验证方式,这里选择“SQL Server身份验证”,接着输入密码,然后选择“默认库”,如student,表示该登录账号默认登录student数据库,一个登录账号可以登录不止一个数据库,这里设置的是默认登录数据库。v注意:
14、如果这儿选择了“Windows身份验证”单选按钮,则必须先在Windows的用户管理中先创建该用户,否则会提示错误。v(3)在如图6-3所示的对话框中,选择“服务器角色”选项,在此选项中,可设置登录账号所属的服务器角色。图6-3 新建登录账号 v2使用SQL语句创建登录帐户 v(方法1)基本语法格式如下。vEXECUTE sp_addlogin 登录名,登录密码,默认数据库,默认语言v【例】创建一个名为“stu04”,使用SQL Server身份验证的登录帐户,其密码为“stu63456”,默认数据库为student,使用系统默认语言。v运行如下命令。vEXECUTE sp_addlogin
15、stu04,stu63456,studentv角色(角色(Role)是一组用户所构成的组,可分为服)是一组用户所构成的组,可分为服务器角色与数据库角色。以下介绍服务器角色。务器角色与数据库角色。以下介绍服务器角色。v服务器角色是负责管理与维护服务器角色是负责管理与维护SQL Server 2005的的组,一般指定需要管理服务器的登录账号属于服务组,一般指定需要管理服务器的登录账号属于服务器角色。器角色。SQL Server 2005在安装过程中定义几个在安装过程中定义几个固定的服务器角色,其具体权限如表固定的服务器角色,其具体权限如表6-1所示。所示。v(4)在如图6-3所示的对话框中,选择“
16、用户映射”选项,在此选项中选择登录账号可以访问的数据库,还可以选择用户在这个数据库中的数据库角色。v(5)设置完毕后,单击“确定”按钮,即可完成该登录账号的创建。v(6)在步骤(2)中,如果选择“Windows身份验证”单选按钮,则“登录名”文本框后面的“搜索”按钮被激活,单击可打开“选择用户和组”对话框,再单击“高级”按钮打开如图6-4所示“搜索结果”拦,单击“立即查找”按钮可以搜索到当前Windows系统中的用户和用户组,可以选择这些用户作为SQL Server的登录账号。图6-4 选择Windows系统用户作为SQL Server的登录账号 6.2.3 更改、删除登录账号属性v 按按照照
17、查查看看登登录录账账号号的的方方法法打打开开如如图图6-2所所示示的的窗窗口口,右右击击需需要要更更改改属属性性的的登登录录名名,在在弹弹出出的的快快捷捷菜菜单单中中选选择择“属属性性”命命令令,打打开开“登登录录属属性性”对对话话框框,即即可可更更改改或或删删除除登登录录账账号号及及账账号号属属性性(如如密密码码、角角色色、数数据据库库访访问问等)。等)。6.2.4 禁止登录账号v 如果要暂时禁止一个使用如果要暂时禁止一个使用SQL Server身身份验证的登录账号连接到份验证的登录账号连接到SQL Server 2005,只需要修改该账户的登录密码就行了。只需要修改该账户的登录密码就行了。
18、v 如果要暂时禁止一个使用如果要暂时禁止一个使用Windows身份身份验证的登录账户连接到验证的登录账户连接到SQL Server,则应当,则应当使用使用SQL Server Management Studio或执或执行行T-SQL语句来实现。语句来实现。v操作步骤如下:操作步骤如下:v(1)在)在“SQL Server Management Studio”窗口中窗口中按照查看登录账号的方法打开如图按照查看登录账号的方法打开如图6-2所示的窗口。所示的窗口。v(2)在)在“详细信息详细信息”窗格中右击要禁止的登录账号,窗格中右击要禁止的登录账号,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“属
19、性属性”命令,打开命令,打开“登登录属性录属性”对话框。对话框。v(3)在)在“登录属性登录属性”对话框中,选择对话框中,选择“状态状态”选项,选项,然后选择然后选择“禁用禁用”单选按钮,如图单选按钮,如图6-5所示。所示。v(4)单击)单击“确定确定”按钮,使所做的设置生效。按钮,使所做的设置生效。图6-5 禁止登录账号v使用使用SQL语句禁止语句禁止Windows身份验证的登录身份验证的登录帐户帐户v语法格式如下。语法格式如下。vEXECUTE sp_denylogin 登录帐户登录帐户v注意:该存储过程只能用于禁止注意:该存储过程只能用于禁止Windows身身份验证的登录帐户,而不能用于
20、禁止份验证的登录帐户,而不能用于禁止SQL Server身份验证的登录帐户。身份验证的登录帐户。v【例例】使用使用SQL语句,禁止语句,禁止Windows身份验身份验证的登录帐户证的登录帐户JSJtest。v运行如下命令。运行如下命令。vEXECUTE sp_denylogin JSJtest6.2.5删除登录账号v 如果要永久禁止使用一个登录账号连接到如果要永久禁止使用一个登录账号连接到SQL Server,就应当将该登录账号删除,可以使用,就应当将该登录账号删除,可以使用SQL Server Management Studio来完成。操作步骤如下:来完成。操作步骤如下:v(1)在)在“SQ
21、L Server Management Studio”窗口中窗口中按照查看登录账号的方法打开如图按照查看登录账号的方法打开如图6-2所示的窗口。所示的窗口。v(2)在)在“详细信息详细信息”窗格中右击要删除的登录账号,窗格中右击要删除的登录账号,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“删除删除”命令。命令。v(3)在打开的对话框中单击)在打开的对话框中单击“确定确定”按钮,确认登按钮,确认登录账号的删除操作。录账号的删除操作。v系统存储过程系统存储过程sp_droplogin用于删除一个用于删除一个SQL Server身份验证的登录帐身份验证的登录帐户,其语法格式如下。户,其语法格式如下
22、。vEXECUTE sp_droplogin 登录名登录名v系统存储过程系统存储过程sp_revokelogin用于删除用于删除Windows身份验证的登录帐户,身份验证的登录帐户,其语法格式如下。其语法格式如下。vEXECUTE sp_revokelogin 登录名登录名v使用使用drop login删除登录名删除登录名 语法:语法:drop login login_namev【例例】使用使用SQL语句删除语句删除Windows身份验证的登录帐户身份验证的登录帐户“JSJtest”和和SQL Server身份验证的登录帐户身份验证的登录帐户“stu04”。vEXECUTE sp_revoke
23、login JSJtestvEXECUTE sp_droplogin stu04vdrop login stu046.3 数据库安全性管理v 6.3.1 数据库用户v 6.3.2 数据库角色v 6.3.3 管理权限6.3.1 数据库用户v一个SQL Server 2005的登录账号只有成为某个数据库的用户时,对该数据库才有访问权限。v每个登录账号在一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。如果在新建登录账号过程中,指定它对某个数据库具有存取权限,则在该数据库中将自动创建一个与该登录账号同名的用户账号。v 注意:登录账号具有对某个数据库的访问权限,并不表
24、示该登录账号对该数据库具有存取的权限,如果要对数据库的对象进行插入、更新等操作,还需要设置用户账号的权限。v1创建数据库的用户v操作步骤如下:v(1)在“SQL Server Management Studio”窗口中,依次展开SQL服务器、“数据库”结点,再展开要管理的数据库结点,如student,然后再依次展开“安全性”、“用户”结点,右击“用户”结点,在弹出的快捷菜单中选择“新建用户”命令,打开“数据库用户-新建”对话框,如图6-6所示。图6-6 新建用户 v(2)在如图6-6所示的对话框中,在“用户名”文本框中输入用户名,由于任何数据库用户都必须对应一个登录名,所以在“登录名”文本框中
25、还要填写有效的登录名(可以单击“”按钮查找SQL服务器上有效的登录名)。v(3)在“数据库角色成员身份”列表框中选择新建用户应该属于的数据库角色或者删除指定的数据库用户。v(4)设置完毕后,单击“确定”按钮,即可在student数据库中创建一个新的用户账号。v1.使用create user创建用户vcreate user user_name for|from login login_name|certificate sert_name|asymmetric key asym_key_name without login with default_schema=schema_namevuser_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 【精品】sql server安全可编辑 sql server 安全 编辑
限制150内