第19章管理SQLServer的安全_第1页
第19章管理SQLServer的安全_第2页
第19章管理SQLServer的安全_第3页
第19章管理SQLServer的安全_第4页
第19章管理SQLServer的安全_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第19章

管理SQLServer的安全本章内容SQLServer的安全机制SQLServer的标准登录模式SQLServer的集成登录模式使用企业管理器建立登录账户SQLServer数据库安全性角色权限SQLServer的安全机制操作系统安全性(第一层)SQLServer的安全性数据库的安全性SQLServer数据库对象的安全性SQLServer的安全性服务器级的安全性(第二层)建立在登录SQLServer的登录账号/密码的基础之上。两种验证模式标准SQLServer登录模式集成WindowsNT登录模式数据库的安全性数据库级的安全性(第三层)限制用户能够访问哪些数据库设值用户登录的默认数据库不要将用户的默认数据库设为master数据库数据库对象的安全性(一)数据库对象级的安全性(第四层)创建对象时,对象的创建者就是对象的拥有者;对象的拥有者可以实现对对象的完全控制;数据库的拥有者拥有该数据库内所有对象的权限数据库对象的安全性(二)User/RoleSELECTEva

Ivan

David

public

INSERT

UPDATE

DELETE

DRI

SQLServer的标准登录模式创建登录账户特殊账户sa修改和删除账户创建登录账户采用标准登录模式实现SQLServer服务器的登录连接,用户必须具有合法的登录账号和密码。创建登录用户的语法:sp_addlogin[@loginame=]'login'[,[@passwd=]'password'][,[@defdb=]'database'][,[@deflanguage=]'language'][,[@sid=]sid][,[@encryptopt=]'encryption_option']创建登录账户举例(一)创建一个test登录账号Sp_addlogin'test','test','pubs'查询登录账号信息usemastergoselectconvert(varbinary(32),password)fromsyslogins--这是一个系统视图wherename='test'创建登录账户举例(二)创建一个test2登录账号,不对密码进行加密。Sp_addlogin'test2','test2','pubs',@encryptopt='skip_encryption'查询登录账号信息selectconvert(varchar(32),password)fromsysloginswherename='test2'特殊账户saSQLServer自带的特殊登录账号saSa账号拥有服务器和所有数据库具有最高的权限修改和删除账户sp_defaultdb:修改登录账户的默认数据库sp_defaultlanguage:修改登录账户的默认语言sp_password:修改登录账户的密码Sp_droplogin:删除登录账户修改和删除账户举例(一)Sp_defaultdb语法:sp_defaultdb[@loginame=]'login',

[@defdb=]'database‘修改test账号的默认数据库为northwindExecsp_defaultdb‘test’,’northwind’修改和删除账户举例(二)sp_password语法:sp_password[[@old=]'old_password',]{[@new=]'new_password'}[,[@loginame=]'login']修改test账户的密码为111Execsp_password‘test’,’111’,’test’课堂练习1.创建一个登录账户student,要求不对密码加密,默认数据库为pubs。2.尝试使用新的登录账号和密码登录服务器。3.修改student账号的默认数据库为northwind4.修改student账号的密码SQLServer的集成登录模式将windows登录与SQLServer登录集成在一起。将windowsNT/2000的用户和工作组映射为SQLServer的登录账户。由操作系统(windowsNT/2000)代替SQLServer执行登录审查的任务。集成登录模式举例一.创建windows2000用户/工作组;控制面板->管理工具->计算机管理创建一个windows用户user001二.将windows2000的用户/工作组设为SQLServer的登录账户;sp_grantlogin[@loginame=]'login'sp_grantlogin[TC\user001]修改/删除集成登录账号Sp_denylogin:禁止某个windows用户/工作组访问SQLServer服务器;Sp_revokelogin:撤销某个windows用户/工作组登录SQLServer的权限;注意上面两者的区别:一个是明确禁止登录,一个是撤销现有登录。使用企业管理器建立登录账户SQLServer数据库安全性添加数据库用户数据库用户与登录账户的关系删除数据库用户特殊数据库用户数据库用户与登录账户的关系建立一个登录账号,使得用户可以登录SQLServer,但是该用户还不具备使用数据库的权利;建立一个数据库用户,使得该用户与某个登录账号相关联,这样,这个登录用户就可以使用某个数据库了。添加数据库用户使用sp_grantdbaccess添加数据库用户;语法:sp_grantdbaccess[@loginame=]'login'[,[@name_in_db=]'name_in_db‘]一般可以省略‘name_in_db’,使得数据库用户名就是登录账户名(即:‘name_in_db’=‘login’),避免混淆。添加数据库用户举例将test账户添加为pubs数据库的一个用户usepubs--注意:这里要进入pubs数据库goexecsp_grantdbaccess'test'注意:这里虽然完成了添加数据库用户的工作,但是该用户的权限还有待添加。默认情况下,新数据库用户具有public角色。删除数据库用户使用sp_revokedbaccess删除数据库用户,实际上就是断开登录账户与数据库用户的关系。语法:sp_revokedbaccess[@name_in_db=]'name_in_db'比如:execsp_revokedbaccess‘test’特殊数据库用户——dbodbo是数据库的拥有者,SQLServer自带的用户,默认的,每个数据库的拥有者都是dbo;所有数据库的dbo用户都对应于sa登录账号;此用户无法删除;特殊数据库用户——guest现有的数据库——除了model数据库,都有guest用户。guest用户使得所有登录到SQLServer的用户都可以访问现有数据库。实际上,如果一个登录账号没有和一个数据库用户关联,那么,如果数据库有geust用户,这个登录账号就和guest用户相关联。如果数据库没有guest用户,这个登录账号就不能访问该数据库。使用企业管理器管理数据库用户使用企业管理器,可以方便的管理数据库用户:新建、删除…课堂练习5.使用企业管理器察看northwind数据库有没有guest用户,如果有,删除它。6.使用student登录账号登录,看能不能查看northwind数据库中的表。7.将student登录添加为northwind数据的一个用户。重做6。8.使用企业管理器管理登录账号和数据库用户(完成添加登录账号、数据库用户,删除登录账号、数据库用户的工作)。角色角色概述固定服务器角色固定数据库角色创建角色角色概述(一)什么是权限?任何用户如果要访问数据库中的对象,首先他必须获得访问该对象的权限。比如:student用户如果要查询dbo用户的某个表tab1中的内容,student用户首先需要获得dbo.tab1表的select权限。比如:student用户如果要更新dbo用户的表tab1中的内容,student用户首先需要获得dbo.tab1表的update权限。角色概述(二)什么是角色?角色是一组权限的集合。为什么需要角色?方便服务器、数据库的权限管理。比如:可以将一组权限赋给一个角色,然后再将这个角色赋给数据库用户或登录账户,从而登录账户和数据库用户就具有了这组权限。固定服务器角色固定的服务器角色是由系统自动提供的;服务器角色用来管理服务器的相关权限;可以从sp_helpsrvrole获得固定服务器角色的列表;可以从sp_srvrolepermission获得每个角色的特定权限。固定数据库角色固定的数据库角色是由系统自动提供的;数据库角色用来管理数据库的相关权限;可以从sp_helpdbfixedrole获得固定数据库角色的列表;可以从sp_dbfixedrolepermission获得每个角色的特定权限。特殊的数据库角色——public存在于所有数据库中所有的数据库用户都属于public角色;新建一个用户,他默认就具有public角色;不能删除public角色创建角色SQLServer允许使用新的数据库角色;注意:这个角色只在某个数据库范围内可用。使用sp_addrole创建新数据库角色;语法:sp_addrole[@rolename=]'role'[,[@ownername=]'owner']创建角色举例在pubs数据库中创建一个新的数据库角色:managersusepubsgosp_addrolemanagers创建角色注意SQLServer角色可以包含1到128个字符,包括字母、符号及数字。但是,角色不能:含有反斜线符号(\)。为NULL,或为空字符串('')。在添加角色之后,可以使用sp_addrolemember添加安全帐户,使其成为该角色的成员。添加新的角色之后,还可以给这个角色授予新的权限。当使用GRANT、DENY或REVOKE语句将权限应用于角色时,角色的成员将继承这些权限,就好像将权限直接应用于其帐户一样。添加角色成员语法sp_addrolemember[@rolename=]'role',[@membername=]'security_account‘关于‘security_account‘:是数据库中的用户,不是登录账号。添加角色成员举例Sp_addlogin'm1','111','pubs'--新建登录账号usepubs--注意:这里要进入pubs数据库gosp_grantdbaccess‘m1’,‘Tom‘--新加数据库用户Tom,与m1登录账号关联gosp_addrolemember‘managers’,‘Tom‘–将Tom用户加入到managers角色中课堂练习9.使用sa账号登录,在pubs数据库中创建一个新的角色,developers。10.将stu用户添加为developers角色的一个成员。权限权限概述授予权限撤销权限拒绝访问权限概述(一)SQLServer数据库中的每一个对象都由一个该数据库的用户所拥有。当数据库对象创建好之后,只有对象的拥有者才能访问该对象。任何其他用户如果要访问该对象,必须获得对象拥有者赋给他们的“权限”权限概述(二)对于表和视图,拥有者可以授予insert,update,delete,select和references权限给别的用户;对于存储过程,拥有者可以授予execute权限给别的用户;数据库拥有者可以授予某些T-SQL语句的执行权限给别的用户。授予权限使用Grant语句授予权限授予对象权限授予命令权限授予命令权限语法:GRANT{ALL|statement[,...n]}TOsecurity_account[,...n]授予权限授予对象权限语法语法:GRANT{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table|view}|ON{table|view}[(column[,...n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}TOsecurity_account[,...n][WITHGRANTOPTION]授予权限举例由sa账户授予managers角色新的权限Grantcreatetabletomanagers在pubs数据库中,由sa账户授予managers角色对dbo.titles表的select权限。Grantselectontitlestomanagers撤销权限使用revoke语句撤销权限撤销命令权限语法:REVOKE{ALL|statement[,...n]}FROMsecurity_account[,...n]撤销权限撤销对象权限语法:REVOKE[GRANTOPTIONFOR]{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table|view}|ON{table|view}[(column[,...n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}{TO|FROM}security_account[,...n][CASCADE]撤销权限举例撤销之前授给Tom的createtable权限。RevokecreatetablefromTom撤销Tom的对dbo.titles表的选择权限。RevokeselectontitlesfromTom拒绝访问拒绝给当前数据库内的安全帐户授予权限,防止安全帐户通过其组或角色成员资格继承权限。拒绝命令权限语法:DENY{ALL|statement[,...n]}

TOsecurity_account[,...n]拒绝访问拒绝对象权限语法:DENY{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table|view}|ON{table|view}[(column[,...n])]|ON{stored_procedure|extended_procedure}|ON{user_defined_function}}TOsecurity_account[,...n][CAS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论