第十二章SQL的安全机制 令 SQL Server的安全机制 SQL Server的安全机制可以划分为4个等级: 1、客户机操作系统的安全性 2、 SQLServer的等安全性 3、数据库的使用安全性 4、数据库对象的使用安全性 每个安全等级就好象一道门,如果用户拥有开门的钥匙,则用户可以 通过每一道门达到下一个安全等级,如果通过了所有的门,则用户就 可以实现对数据的访问。 用户1客户机 SQL服务器人3 数据库 4数据库对象
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 SQL server的安全机制可以划分为4个等级: 1、客户机操作系统的安全性 2、SQLserver的等安全性 3、数据库的使用安全性 4、数据库对象的使用安全性 每个安全等级就好象一道门,如果用户拥有开门的钥匙,则用户可以 通过每一道门达到下一个安全等级,如果通过了所有的门,则用户就 可以实现对数据的访问。 用户 1 客户机 2 SQL 服务器 3 数据库 4 数据库对象
第十二章SQL的安全机制 令 SQL Server的安全机制 1、客户机操作系统的安全性 在用户使用客户计算机通过网络实现对 SQL Server服务器的访问时 用户首先要获得客户计算机操作系统的使用权。 2、 SQLServer的安全性 SQL Serverl的服务器级的安全性建立在控制服务器登陆帐号和密码 的基础上。用户在登录时提供的登录帐号和密码,决定了用户能否获 得 SQL Server的访问权,以及在登录以后,用户在访问 SQL Server进 程是可以拥有的权利。 3、数据库的安全性 在用户通过 SQL server服务器的安全性检验后,将直接面对不同的 数据库入口。 4、数据库对象的安全性
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 1、客户机操作系统的安全性 在用户使用客户计算机通过网络实现对SQL server 服务器的访问时, 用户首先要获得客户计算机操作系统的使用权。 2、SQLserver的安全性 SQL server的服务器级的安全性建立在控制服务器登陆帐号和密码 的基础上。用户在登录时提供的登录帐号和密码,决定了用户能否获 得SQL server的访问权,以及在登录以后,用户在访问SQL server进 程是可以拥有的权利。 3、数据库的安全性 在用户通过SQL server服务器的安全性检验后,将直接面对不同的 数据库入口。 4、数据库对象的安全性
第十二章SQL的安全机制 令 SQL Server的安全机制 为了实现安全性,每个网络用户在访问 SQLServery数据库之前, 都必须经过两个阶段的检验: 身份验证阶段( Authentication):用户在 SQLServer上获得对任 何数据库的访问权限之前,必须登录到 SQLServer上,并且被认为是 合法的, SQLServer或者操作系统对用户进行验证。 权限验证阶段( Permission Validation):用户身份验证通过后, 登录到 SQLServer上,系统检查用户是否具有访问服务器上数据对象 的权限。 用户客户机 SQL服务器3 4 数据库 据库对象 匚身份验证 权限验证
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 为了实现安全性,每个网络用户在访问SQL Server数据库之前, 都必须经过两个阶段的检验: 身份验证阶段(Authentication):用户在SQL Server上获得对任 何数据库的访问权限之前,必须登录到SQL Server上,并且被认为是 合法的,SQL Server或者操作系统对用户进行验证。 权限验证阶段(Permission Validation):用户身份验证通过后, 登录到SQL Server上,系统检查用户是否具有访问服务器上数据对象 的权限。 用户 1 客户机 2 SQL 服务器 3 数据库 4 数据库对象 身份验证 权限验证
第十二章SQL的安全机制 令 SQL Server的安全机制 身份验证阶段( Authentication): Windows验证模式和混合验证模式 、 Windows验证模式 在该验证模式下, SQLServer检测当前使用的 Windows用户帐号, 方式下,用户不必提供密码或者登录名让 SQL Serve公录。在这种 并在 Syslogins表中查找该帐号,以确定该帐号是否有权登 Windows验证模式下主要有以下优点: 1)数据库管理员的工作可以集中在管理数据库方面,而不是管理用户帐户 。对用户帐户的管理可以交给 Windows nt/200去完成。 2) WindOwNT/2000有着更强的用户帐户管理工具。可以设置帐户锁定 密码期限等。如果不是通过定制来扩展 SQL Server, SQLServer是不具备这 些功能的。 3) Windows nt/2000的组策略支持多个用户同时被授权访问 SQLServer 但是,要在客户和服务器间建立连接,必须满足以下两个条件中的一个 1)客户端的用户必须有合法的服务器上的 Windows nt2000帐户,服务器 能够在自己的域中或者信任域中验证该用户 2)服务器启动了 Guest帐户。但该方法会带来安全上的隐患,而不是 好的方
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 身份验证阶段(Authentication):Windows验证模式和混合验证模式 1、Windows验证模式 在该验证模式下,SQL Server检测当前使用的Windows用户帐号, 并在Syslogins表中查找该帐号,以确定该帐号是否有权登录。在这种 方式下,用户不必提供密码或者登录名让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帐户。但该方法会带来安全上的隐患,因而不是一 个好的方法
第十二章SQL的安全机制 令 SQL Server的安全机制 2、混合验证模式 混合验证模式允许以 SQLServer验证模式或者 Windows验证模式 来进行验证。使用哪种模式取决于在最初通信时使用的网络库。如果 个用户使用的是TCP/P的 Sockets进行登录验证,则将使用SQL Server验证模式;如果用户使用命名管道,则登录时将使用 Windows 验证模式。但是对于 Windows9X系列的操作系统,只能使用SQL Server验证模式。 SQL Server验证模式下,处理登录的过程为:用户在输入登录名和密 码后, SQLServer在系统注册表中检测输入的登录名和密码。如果输 入的登录名存在,而且密码也正确,就可以登录到 SQLServer上。 混合验证模式具有以下优点 1)创建了 WindOws nt/2000之上的另外一个安全层次。 2)支持更大范围的用户,如非 Windows nt客户、Novl网用户等。 3)一个应用程序可以使用单个的 QLServer登录帐号和口令水
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 2、混合验证模式 混合验证模式允许以SQL Server验证模式或者Windows验证模式 来进行验证。使用哪种模式取决于在最初通信时使用的网络库。如果 一个用户使用的是TCP/IP的Sockets进行登录验证,则将使用SQL Server验证模式;如果用户使用命名管道,则登录时将使用Windows 验证模式。但是对于Windows 9X系列的操作系统,只能使用SQL Server验证模式。 SQL Server验证模式下,处理登录的过程为:用户在输入登录名和密 码后,SQL Server在系统注册表中检测输入的登录名和密码。如果输 入的登录名存在,而且密码也正确,就可以登录到SQL Server上。 混合验证模式具有以下优点: 1)创建了Windows NT/2000之上的另外一个安全层次。 2)支持更大范围的用户,如非Windows NT客户、Novell网用户等。 3)一个应用程序可以使用单个的SQL Server登录帐号和口令
第十二章SQL的安全机制 令 SQL Server的安全机制 3、设置验证模式 在第一次安装 SQLServer,或者使用 SQLServer连接其他服务器 的时候,需要指定验证模式。对于已经指定验证模式的 SQLServer服 务器,在 SQLServer中还可以进行修改。操作步骤如下: 1)打开 Enterprise Manager,展开“服务器组”文件夹,在其中的 某个服务器上单击右键,在弹出的快捷菜单上选择“编辑 SQLServer 注册属性”菜单命令,这时“已注册的 SQLServer属性”对话框 2)在对话框中设置验证模式后,单击“确定”按钮即可。 注意:修改验证模式后,必须首先停止 SQLServer服务,然后重新启 动 SQLServer,才能使设置生效
第十二章 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的安全机制 权限验证阶段 用户必须使用特定的登录账户才能连接到 SQLServer。建立连接 以后,用户必须使用特定的用户账户才能对数据库进行访问,而且只 能查看经授权可以查看的表和视图,只能执行经授权可以执行的存储 过程和管理功能。 当验证了用户的身份并允许其登录到 SQLServer以后,在用户访 问的每个数据库中都要求设置单独的用户账户。这样做的目的是防止 一个用户在连接到 SQLServerl以后,对服务器上的所有数据库行访
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 权限验证阶段 用户必须使用特定的登录账户才能连接到SQL Server。建立连接 以后,用户必须使用特定的用户账户才能对数据库进行访问,而且只 能查看经授权可以查看的表和视图,只能执行经授权可以执行的存储 过程和管理功能。 当验证了用户的身份并允许其登录到SQL Server以后,在用户访 问的每个数据库中都要求设置单独的用户账户。这样做的目的是防止 —个用户在连接到SQL Server以后,对服务器上的所有数据库进行访 问
第十二章SQL的安全机制 令 SQL Server的安全机制 权限验证阶段 每个数据库中的用户账号都用于为该数据库的对象设置安全权限 无论是 WindOws nt用户帐户、用户所属的 WindOws nt组、还是 SQL Server登录账户,都可以在数据库中映射为不同的数据库用户账 户。如果不存在直接映射的账户,就可以允许用户以Gue账户在数 据库中工作,前提是该账户已经存在。用户账户的数据库访问权限决 定了用户在数据库中可以进行哪些操作 用户获得对数据库的访问权限以后, SQLServer就可以接受并执 行命令。用户在数据库中所进行的所有活动都是通过 Transact-SQL语 句传到 SQLServer中的。当 SQLServer接收到这些语句时,将确定用 的权限或者没有访间该语句所使用对象的权限,则 ]SQLServer用 返回一个权限错误
第十二章 SQL的安全机制 ❖ SQL server 的安全机制 权限验证阶段 每个数据库中的用户账号都用于为该数据库的对象设置安全权限 ;无论是Windows NT用户帐户、用户所属的Windows NT组、还是 SQL Server登录账户,都可以在数据库中映射为不同的数据库用户账 户。如果不存在直接映射的账户,就可以允许用户以Guest账户在数 据库中工作,前提是该账户已经存在。用户账户的数据库访问权限决 定了用户在数据库中可以进行哪些操作。 用户获得对数据库的访问权限以后,SQL Server就可以接受并执 行命令。用户在数据库中所进行的所有活动都是通过Transact-SQL语 句传到SQL Server中的。当SQL Server接收到这些语句时,将确定用 户是否具有在数据库中执行该语句的权限。如果用户没有执行该语句 的权限或者没有访问该语句所使用对象的权限,则SQL Server向用户 返回一个权限错误
第十二章SQL的安全机制 SQL Server的标准登陆模式 服务器的安全性是通过设置系统登录账户的权限进行管理的。用 户在连接到 SQLServer2000时与登录账户相关联;在 SQLServer 2000中有两类登录账户:一类是登录服务器的登录帐号( Login Name),另外一类是使用数据库的用户帐号( User name)。登录帐 号是指能登录到 SQL Server的帐号,它属于服务器的层面,本身并不 能让用户访问服务器中的数据库,而登录者要使用服务器中的数据库 时,必须要有用户帐号才能存取数据库。 用户名要在特定的数据库内创建并关联一个登录名(当一个用户 创建时,必须关联一个登录名)。用户定义的信息存放在服务器的每 个数据库的 sysusers表中,用户设有密码同它相关联。 SQLServer通 过授权给用户指定用户可以访问的数据库对象的权限
第十二章 SQL的安全机制 ❖ SQL server 的标准登陆模式 服务器的安全性是通过设置系统登录账户的权限进行管理的。用 户在连接到SQL Server 2000时与登录账户相关联;在SQL Server 2000中有两类登录账户:一类是登录服务器的登录帐号(Login Name),另外一类是使用数据库的用户帐号(User Name)。登录帐 号是指能登录到SQL Server的帐号,它属于服务器的层面,本身并不 能让用户访问服务器中的数据库,而登录者要使用服务器中的数据库 时,必须要有用户帐号才能存取数据库。 用户名要在特定的数据库内创建并关联一个登录名(当一个用户 创建时,必须关联一个登录名)。用户定义的信息存放在服务器的每 个数据库的sysusers表中,用户设有密码同它相关联。SQL Server通 过授权给用户指定用户可以访问的数据库对象的权限
第十二章SQL的安全机制 令 SQL Server的标准登陆模式 查看登录帐号 在安装 SQLServer2000以后,系统默认创建三个登录帐号。 进入 Enterprise Manager,展开“ SQLServer组”,找到所要连接 的 SQLServer服务器;展开该服务器对应的文件夹,再展开“安全性 ”文件夹,单击“登录”选项,即可看到系统创建的默认登录帐号及 已建立的其他登录帐号。 它们的含义如下: BUILTIN Administrators:凡是 Windows nt server/2000中的 Administrators组的帐号都允许作为 SQLServer登录账号使用。 域名\ administrator:允许 Windows NT Server的 Administrator帐 号作为 SQLServer登录账号使用。 sa: SQLServer系统管理员登录帐号,该账号拥有最高的管权 限,可以执行服务器范围内的所有操作。此 SQLServer的管理员不 定是 Windows nt server/2000的管理员(但通常是)
第十二章 SQL的安全机制 ❖ SQL server 的标准登陆模式 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的管理员(但通常是)