SQL的安全机制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十二章 SQL的安全机制
SQL server 的安全机制
为了实现安全性,每个网络用户在访问SQL Server数据库之前, 都必须经过两个阶段的检验: 身份验证阶段(Authentication):用户在SQL Server上获得对任 何数据库的访问权限之前,必须登录到SQL Server上,并且被认为是 合法的,SQL Server或者操作系统对用户进行验证。 权限验证阶段(Permission Validation):用户身份验证通过后, 登录到SQL Server上,系统检查用户是否具有访问服务器上数据对象 的权限。 用户
数据库对象
源自文库用户
客户机
SQL 服务器
数据库
第十二章 SQL的安全机制
SQL server 的安全机制
1、客户机操作系统的安全性 在用户使用客户计算机通过网络实现对SQL server 服务器的访问时, 用户首先要获得客户计算机操作系统的使用权。 2、SQL server的安全性 SQL server的服务器级的安全性建立在控制服务器登陆帐号和密码 的基础上。用户在登录时提供的登录帐号和密码,决定了用户能否获 得SQL server的访问权,以及在登录以后,用户在访问SQL server进 程是可以拥有的权利。 3、数据库的安全性 在用户通过 SQL server服务器的安全性检验后,将直接面对不同的 数据库入口。 4、数据库对象的安全性
第十二章 SQL的安全机制
SQL server 的标准登陆模式
服务器角色是负责管理与维护SQL Server的组,一般指定需要管理服 务器的登录帐号属于服务器角色。SQL Server在安装过程中定义几个 固定的服务器角色,其具体权限如下: 固定服务器角色描述
Sysadmin全称为System Administrators,可在SQL Server中执行任何活动 Serveradmin全称为Server Administrators,可设置服务器范围的配置选项,关闭服务器 Setupadmin全称为Setup Administrators,可管理连接服务器和启动过程 Securityadmin全称为Security Administrators,可管理服务器登录,读取错误日志和更改密码 Processadmin全称为Process Administrators,可以管理在SQL Server中运行的进程 Dbcreator全称为Database Creators,可以创建、更改和删除数据库 Diskadmin全称为Disk Administrators,可以管理磁盘文件 Bulkadmin全称为Bulk Insert Administrators,可以执行大容量插入
问的每个数据库中都要求设置单独的用户账户。这样做的目的是防止 —个用户在连接到SQL Server以后,对服务器上的所有数据库进行访
问。
第十二章 SQL的安全机制
SQL server 的安全机制
权限验证阶段
每个数据库中的用户账号都用于为该数据库的对象设置安全权限 ;无论是Windows NT用户帐户、用户所属的Windows NT组、还是 SQL Server登录账户,都可以在数据库中映射为不同的数据库用户账 户。如果不存在直接映射的账户,就可以允许用户以Guest账户在数 据库中工作,前提是该账户已经存在。用户账户的数据库访问权限决 定了用户在数据库中可以进行哪些操作。 用户获得对数据库的访问权限以后,SQL Server就可以接受并执 行命令。用户在数据库中所进行的所有活动都是通过Transact-SQL语 句传到SQL Server中的。当SQL Server接收到这些语句时,将确定用 户是否具有在数据库中执行该语句的权限。如果用户没有执行该语句 的权限或者没有访问该语句所使用对象的权限,则SQL Server向用户 返回一个权限错误。
第十二章 SQL的安全机制
SQL server 的安全机制
权限验证阶段
用户必须使用特定的登录账户才能连接到SQL Server。建立连接
以后,用户必须使用特定的用户账户才能对数据库进行访问,而且只
能查看经授权可以查看的表和视图,只能执行经授权可以执行的存储 过程和管理功能。
当验证了用户的身份并允许其登录到SQL Server以后,在用户访
1
客户机
身份验证
2
SQL 服务器
3
数据库
4
数据库对象
权限验证
第十二章 SQL的安全机制
SQL server 的安全机制
身份验证阶段(Authentication):Windows验证模式和混合验证模式 1、Windows验证模式 在该验证模式下,SQL Server检测当前使用的Windows用户帐号, 并在Syslogins表中查找该帐号,以确定该帐号是否有权登录。在这种 方式下,用户不必提供密码或者登录名让 SQL Server验证。
第十二章 SQL的安全机制
SQL server 的标准登陆模式
服务器的安全性是通过设置系统登录账户的权限进行管理的。用 户在连接到SQL Server 2000时与登录账户相关联;在SQL Server 2000中有两类登录账户:一类是登录服务器的登录帐号(Login Name),另外一类是使用数据库的用户帐号(User Name)。登录帐 号是指能登录到SQL Server的帐号,它属于服务器的层面,本身并不 能让用户访问服务器中的数据库,而登录者要使用服务器中的数据库 时,必须要有用户帐号才能存取数据库。
用户名要在特定的数据库内创建并关联一个登录名(当一个用户 创建时,必须关联一个登录名)。用户定义的信息存放在服务器的每 个数据库的sysusers表中,用户设有密码同它相关联。SQL Server通 过授权给用户指定用户可以访问的数据库对象的权限。
第十二章 SQL的安全机制
SQL server 的标准登陆模式
第十二章 SQL的安全机制
SQL server 的标准登陆模式
2、 创建一个登录帐号 要登录到SQL Server必须具有一个登录帐号,创建一个登录帐号的操 作步骤如下: 1)在SQL Server的Enterprise Manager下,展开“SQL Server组 ”文件夹,找到要建立登录帐号的服务器并展开其文件夹,再展开“ 安全性”文件夹,在“登录”选项上右击鼠标,在出现的快捷菜单中 单击“新建登录”菜单命令,打开“SQL Server登录属性”对话框。 2) “名称”文本框中输入要创建的登录帐号的名称,如 “StudentAdm”,在“身份验证”选项组中,单击“SQL Server身份 验证”单选钮并输入密码,然后在“默认设置”选项组中,选择数据 库列表中的某个数据库,如“STUDENT”,表示该登录帐号默认登录 STUDENT数据库中。 3) 在该对话框中,单击“服务器角色”选项卡,在此选项卡中, 可设置登录帐号所属的服务器角色。
第十二章 SQL的安全机制
SQL server 的安全机制
2、混合验证模式 混合验证模式允许以SQL Server验证模式或者Windows验证模式 来进行验证。使用哪种模式取决于在最初通信时使用的网络库。如果 一个用户使用的是TCP/IP的Sockets进行登录验证,则将使用SQL Server验证模式;如果用户使用命名管道,则登录时将使用Windows 验证模式。但是对于Windows 9X系列的操作系统,只能使用SQL Server验证模式。 SQL Server验证模式下,处理登录的过程为:用户在输入登录名和密 码后,SQL Server在系统注册表中检测输入的登录名和密码。如果输 入的登录名存在,而且密码也正确,就可以登录到SQL Server上。 混合验证模式具有以下优点:
Windows验证模式下主要有以下优点: 1)数据库管理员的工作可以集中在管理数据库方面,而不是管理用户帐户 。对用户帐户的管理可以交给Windows NT/2000去完成。 2)WindowNT/2000有着更强的用户帐户管理工具。可以设置帐户锁定、 密码期限等。如果不是通过定制来扩展SQL Server,SQL Server是不具备这 些功能的。 3)Windows NT/2000的组策略支持多个用户同时被授权访问SQL Server。 但是,要在客户和服务器间建立连接,必须满足以下两个条件中的一个: 1)客户端的用户必须有合法的服务器上的Windows NT/2000帐户,服务器 能够在自己的域中或者信任域中验证该用户。 2)服务器启动了Guest帐户。但该方法会带来安全上的隐患,因而不是一 个好的方法。
1)创建了Windows NT/2000之上的另外一个安全层次。 2)支持更大范围的用户,如非Windows NT客户、Novell网用户等。 3)一个应用程序可以使用单个的SQL Server登录帐号和口令。
第十二章 SQL的安全机制
SQL server 的安全机制
3、设置验证模式 在第一次安装SQL Server,或者使用SQL Server连接其他服务器 的时候,需要指定验证模式。对于已经指定验证模式的SQL Server服 务器,在SQL Server中还可以进行修改。操作步骤如下: 1)打开Enterprise Manager,展开“服务器组”文件夹,在其中的 某个服务器上单击右键,在弹出的快捷菜单上选择“编辑SQL Server 注册属性”菜单命令,这时 “已注册的SQL Server属性”对话框。 2) 在对话框中设置验证模式后,单击“确定”按钮即可。 注意:修改验证模式后,必须首先停止SQL Server服务,然后重新启 动SQL Server,才能使设置生效。
SQL的安全机制
SQL server 的安全机制
SQL server的安全机制可以划分为4个等级: 1、客户机操作系统的安全性 2、SQL server的等安全性 3、数据库的使用安全性 4、数据库对象的使用安全性 每个安全等级就好象一道门,如果用户拥有开门的钥匙,则用户可以 通过每一道门达到下一个安全等级,如果通过了所有的门,则用户就 可以实现对数据的访问。 1 2 3 4
第十二章 SQL的安全机制
SQL server 的标准登陆模式
2、 创建一个登录帐号 4) 在对话框中,单击“数据库访问”选项卡,在此选项卡中选择 登录帐号可以访问的数据库,即选中所需数据库左面的复选框。 5) 设置完毕后,单击“确定”按钮,即可完成该登录帐号的创建 。 6)在步骤2)中,如果选择“Windows身份验证”单选钮,则“名 称”文本框后面的按钮被激活,单击可打开选择Windows用户的对话 框,。从该对话框中可选择Windows系统的用户作为SQL Server的登 录帐号。 查询分析器: 命令:sp_addlogin loginname , password , database 例:exec sp_addlogin ‘zhx’ , ’aaa’ , ’pubs’
1、 查看登录帐号 在安装SQL Server 2000以后,系统默认创建三个登录帐号。 进入Enterprise Manager,展开“SQL Server组”,找到所要连接 的SQL Server服务器;展开该服务器对应的文件夹,再展开“安全性 ”文件夹,单击“登录”选项,即可看到系统创建的默认登录帐号及 已建立的其他登录帐号。 它们的含义如下: BUILTIN\Administrators:凡是Windows NT Server/2000中的 Administrators组的帐号都允许作为SQL Server登录账号使用。 域名\Administrator:允许Windows NT Server的Administrator帐 号作为SQL Server登录账号使用。 sa:SQL Server系统管理员登录帐号,该账号拥有最高的管理权 限,可以执行服务器范围内的所有操作。此SQL Server的管理员不一 定是Windows NT Server/2000的管理员 (但通常是)。