第03章--关系数据库标准语言SQL——数据控制语言ppt课件_第1页
第03章--关系数据库标准语言SQL——数据控制语言ppt课件_第2页
第03章--关系数据库标准语言SQL——数据控制语言ppt课件_第3页
第03章--关系数据库标准语言SQL——数据控制语言ppt课件_第4页
第03章--关系数据库标准语言SQL——数据控制语言ppt课件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

关系数据库标准语言SQL,SQL概述数据定义查询数据更新视图数据控制嵌入式SQL,数据控制,概述授权收回权限,概述,数据控制亦称为数据保护,包括数据的:安全性控制完整性控制并发控制恢复,SQL语言的数据控制功能,SQL语言提供了数据控制功能,能够在一定程度上保证数据库中数据的完全性、完整性,并提供了一定的并发控制及恢复能力。,1.完整性(Integrity),数据库的完整性是指数据库中数据的正确性与相容性。SQL语言定义完整性约束条件CREATETABLE语句ALTERTABLE语句实体完整性(码)参照完整性取值唯一的列等其他约束条件,2.并发控制(Concurrency),并发控制:当多个用户并发地对数据库进行操作时,对他们加以控制、协调,以保证并发操作正确执行,保持数据库的一致性。SQL语言并发控制能力:提供事务、事务开始、事务结束、提交等概念BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2。COMMITROLLBACK,3.恢复(Recovery),恢复:当发生各种类型的故障导致数据库处于不一致状态时,将数据库恢复到一致状态的功能。SQL语言恢复功能:提供事务回滚、重做等概念(UNDO、REDO),4.安全性(Security),安全性:保护数据库,防止不合法的使用所造成的数据泄露和破坏。保证数据安全性的主要措施存取控制:控制用户只能存取他有权存取的数据规定不同用户对于不同数据对象所允许执行的操作,DBMS实现数据安全性保护的过程,用户或DBA把授权决定告知系统SQL的GRANT和REVOKEDBMS把授权的结果存入数据字典当用户提出操作请求时,DBMS根据授权定义进行检查,以决定是否执行操作请求,安全性(续),谁定义?DBA和表的建立者(即表的属主(Owner))如何定义?SQL语句:GRANTREVOKE,授权,GRANT语句的一般格式:GRANT,.ONTO,.WITHGRANTOPTION;谁定义?DBA和表的建立者(即表的属主)Grant功能:将对指定操作对象的指定操作权限授予指定的用户。,(1)操作权限,(2)用户的权限,建库(CREATEDATABASE)的权限:属于DBADBA授予-普通用户基本表或视图的属主拥有对该表或视图的一切操作权限接受权限的用户:一个或多个具体用户PUBLIC(全体用户),(3)WITHGRANTOPTION子句,指定了WITHGRANTOPTION子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定WITHGRANTOPTION子句:获得某种权限的用户只能使用该权限,不能传播该权限,GRANTSyntax(Transact-SQL),Statementpermissions:GRANTALL|statement,.nTOsecurity_account,.nstatement:CREATEDATABASE,CREATEDEFAULT,CREATEFUNCTION,CREATEPROCEDURE,CREATERULE,CREATETABLE,CREATEVIEW,BACKUPDATABASE,BACKUPLOG,GRANTCREATETABLETOU1;,GRANTSyntax(Transact-SQL),Objectpermissions:GRANTALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_functionTOsecurity_account,.nWITHGRANTOPTIONASgroup|role,例题,例1把查询Student表权限授给用户U1GRANTSELECTONTABLEStudentTOU1;,EXECsp_addloginU1,88888888,MyDB,NULLEXECsp_adduserU1GRANTSELECTONOBJECT:StudentTOU1,例题(续),例2把对Student表和Course表的全部权限授予用户U2和U3GRANTALLPRIVILEGESONTABLEStudent,CourseTOU2,U3;,例4,例题(续),例3把对表SC的查询权限授予所有用户GRANTSELECTONTABLESCTOPUBLIC;,例题(续),例4把查询Student表和修改学生学号的权限授给用户U4GRANTUPDATE(Sno),SELECTONTABLEStudentTOU4;,例题(续),例5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户GRANTINSERTONTABLESCTOU5WITHGRANTOPTION;,传播权限,执行例5后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限:GRANTINSERTONTABLESCTOU6WITHGRANTOPTION;同样,U6还可以将此权限授予U7:GRANTINSERTONTABLESCTOU7;但U7不能再传播此权限。U5-U6-U7,例题(续),例6DBA把在数据库S_C中建立表的权限授予用户U8GRANTCREATETABONDATABASES_CTOU8;,数据控制,概述授权收回权限,SQL收回权限的功能,REVOKE语句的一般格式为:REVOKE,.ONFROM,.;功能:从指定用户那里收回对指定对象的指定权限,例题,例7把用户U4修改学生学号的权限收回REVOKEUPDATE(Sno)ONTABLEStudentFROMU4;,例题(续),例8收回所有用户对表SC的查询权限REVOKESELECTONTABLESCFROMPUBLIC;,例题(续),例9把用户U5对SC表的INSERT权限收回REVOKEINSERTONTABLESCFROMU5;,权限的级联回收,系统将收回直接或间接从U5处获得的对SC表的INSERT权限:-U5-U6-U7收回U5、U6、U7获得的对SC表的INSERT权限:-U5-U6-U7,小结:SQL灵活的授权机制,DBA拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要时又都可以用REVOKE语句收回。,帐号和角色,在SQLServer中,帐号有两种:一种是登录服务器的登录帐号(loginname)另外一种是使用数据库的用户帐号(username)。登录帐号是指能登录到SQLServer的帐号,属于服务器的层面,它本身并不能让用户访问服务器中的数据库,而登录者要使用服务器中的数据库时,必须要有用户帐号才能够存取数据库。就如同公司门口先刷卡进入(登录服务器),然后再拿钥匙打开自己的办公室(进入数据库)一样。用户名要在特定的数据库内创建,并关联一个登录名(当一个用户创建时,必须关联一个登录名)。用户定义的信息存放在服务器的每个数据库的sysusers表中,用户没有密码同它相关联。通过授权给用户来指定用户可以访问的数据库对象的权限。,1查看登录帐号方法1:使用企业管理器在安装SQLServer后,系统默认创建三个登录帐号。进入企业管理器,展开“SQLServer组”,找到所要连接的SQLServer服务器,展开该服务器对应的文件夹,再展开“安全性”文件夹,单击“登录”选项,即可看到系统创建的默认登录帐号及已建立的其他登录帐号。其中:BUILTINAdministrators、域名Administrator、sa是默认的登录帐号,它们的含义如下:(1)BUILTINAdministrators:凡是WindowsNTServer/2000中Administrators组的帐号都允许登录SQLServer。(2)域名Administrator:允许NTServer的Administrator帐号登录。(3)sa:超级管理员帐号,允许SQLServer的系统管理员登录,此SQLServer的管理员不一定是WindowsNTServer/2000的管理员(但通常是)。,服务器的登录帐号,方法2:使用存储过程使用sp_helplogins可查看登录帐号。格式是:execsp_helplogins,方法1(企业管理器):(1)在SQLServer的企业管理器下,展开“SQLServer组”文件夹,找到需要建立登录帐号的服务器并展开其文件夹,再展开“安全性”文件夹,在“登录”选项上右击鼠标,在出现的快捷菜单中单击“新建登录”菜单命令,打开“SQLServer登录属性”对话框。(2)在“名称”文本框中输入要创建的登录帐号名称,如:“StudyAdm”,在“身份验证”选项组中,单击“SQLServer身份验证”单选钮,并输入密码,然后在“默认设置”选项组中,选择数据数据库列表中的某个数据库,如:“Study”,表示该登录帐号默认登录到Study数据库中。(3)在对话框中,单击“服务器角色”标签,打开“服务器角色”选项卡,在此选项卡中,可以设置登录帐号所属的服务器角色。(4)在对话框中,单击“数据库访问”标签,打开“数据库访问”选项卡。在此选项卡中可选择登录帐号可以访问的数据库,即选中所需要的数据库左面的复选框。(5)设置完毕后,单击“确定”按钮,即可完成该登录帐号的创建。(6)在步骤(2)中,如果选择“Windows身份验证”单选钮,则“名称”文本框后面的按钮被激活,单击可打开选择Windows用户的对话框。从该对话框中可选择Windows系统的用户作为SQLServer的登录帐号。,2.创建一个登录帐号,SQLServer在安装过程中定义几个固定的服务器角色,其具体权限如下:sysadmin:全称为SystemAdministrators,可以在SQLServer中执行任何活动。serveradmin:全称为ServerAdministrators,可以设置服务器范围的配置选项,关闭服务器。setupadmin:全称为SetupAdministrators,可以管理链接服务器和启动过程。securityadmin:全称为SecurityAdministrators,可以管理登录和创建数据库的权限,还可以读取错误日志和更改密码。processadmin:全称为ProcessAdministrators,可以管理在SQLServer中运行的进程。dbcreator:全称为DatabaseCreators,可以创建、更改和除去数据库。diskadmin:全称为DiskAdministrators,可以管理磁盘文件。bulkadmin:全称为BulkInsertAdministrators,可以执行BULKINSERT(大容量插入)语句。注:属于WindowsNT/2000Administrators组的帐号,在SQLServer中被自动设置为sysadmin服务器角色。,角色(role)是一组用户所构成的组,可分为服务器角色与数据库角色。以下先介绍服务器角色,数据库角色放在后面讲解。服务器角色是负责管理与维护SQLServer的组,一般只会指定需要管理服务器的登录帐号属于服务器角色。,方法2(存储过程):利用SQLServer提供的存储过程sp_addlogin创建登录帐号。格式是:EXECsp_addlogin登录帐号名称,密码,默认数据库名,使用的语言注:(1)使用的语言如果指定为NULL,则表示使用系统默认语言。(2)此存储过程只是添加了一个登录帐号,该帐号只能登录到SQLServer,并不对某特定数据库具有存取权限,所以,还需要利用sp_adduser存储过程将此登录帐号加入到指定数据库中才行。EXECsp_addloginMike,m1934,study,NULL此语句建立了一个名称为Mike的登录帐号。USEstudyEXECsp_adduserMike此语句将Mike登录帐号加入到数据库study中。,(1)进入企业管理器,展开“SQLServer组”,找到所要连接的SQLServer服务器,展开该服务器对应的文件夹,再展开“安全性”文件夹,单击“登录”选项,在企业管理器的右侧窗格中即可看到系统创建的默认登录帐号及已建立的其他登录帐号。在需要更改属性的帐号上单击右键,在出现的快捷菜单中,单击“属性”菜单项,即可打开登录帐号的属性对话框,在该对话框中可以更改有关该帐号的密码、服务器角色、访问的数据库等,该对话框中各项的含义如同创建登录帐号时的含义相同,在此不再重复。(2)使用存储过程sp_password可改变登录帐号的密码。格式是:EXECsp_password旧密码,新密码,登录帐号名称EXECsp_passwordm1934,mike1934,Mike此语句将Mike帐号的密码由原来的m1934改为mike1934。(3)使用存储过程sp_addsrvrolemember可以将登录帐号加入服务器的角色中。格式是:EXECsp_addsrvrolemember登录帐号,服务器角色名称EXECsp_addsrvrolememberMike,dbcreator此语句是将登录帐号Mike加入到dbcreator服务器角色中。,3更改登录帐号属性,方法1:使用企业管理器进入企业管理器,展开“SQLServer组”,找到所要连接的SQLServer服务器,展开该服务器对应的文件夹,再展开“安全性”文件夹,单击“登录”选项,在企业管理器的右侧窗格中即可看到系统创建的默认登录帐号及已建立的其他登录帐号。在需要更改属性的帐号上单击右键,在出现的快捷菜单中,单击“删除”菜单项,此时会打开一个提示对话框,单击“是”按钮确定删除。方法2:使用存储过程使用存储过程sp_droplogin可删除某一登录帐号。格式是:USE数据库EXECsp_droplogin登录帐号USEstudyEXECsp_droploginMike该语句可从数据库Study中删除Mike登录帐号。,4删除登录帐号,数据库的用户,一个SQLServer的登录帐号只有成为该数据库的用户时,对该数据库才有访问权限。在安装SQLServer后,默认数据库如:master、tempdb、msdb等包含两个用户:dbo和guest。任何一个登录帐号都可以通过guest用户帐号来存取相应的数据库。但是当新建一个数据库时,默认只有dbo用户帐号而没有guest用户帐号。每个登录帐号在一个数据库中只能有一个用户帐号,但每个登录帐号可以在不同的数据库中各有一个用户帐号。如果在新建登录帐号过程中,指定对某个数据库具有存取权限,则在该数据库中将自动创建一个与该登录帐号同名的用户帐号。注:(1)master和tempdb数据库中的guest用户帐号不能删除,而其他数据库中的guest用户帐号可以删除。因为master数据库中记录了所有的系统信息,每个登录的用户若没有特别指定数据库,默认都是使用master数据库。而tempdb数据库是临时使用的数据库,所有与服务器连接的数据都会存储在该处,因此也必须提供guest用户帐号。(2)登录帐号具有对某个数据库的访问权限,并不表示该登录帐号对该数据库具有存取的权限。如果要对数据库的对象进行插入、更新等操作,还需要设置用户帐号的权限。,方法1:使用企业管理器在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某数据库如:Study的文件夹,单击“用户”选项,则可在企业管理器的右窗格中显示出目前该数据库中所有的用户。方法2:利用存储过程格式是:USE数据库名EXECsp_helpuserUSEMyDBEXECsp_helpuser可列出目前Study数据库中所有的数据库用户帐户。,1查看数据库的用户,方法1:使用企业管理器(1)在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某一数据库如:Study的文件夹,然后在“用户”选项上单击鼠标右键,在弹出的快捷菜单中选择“新建数据库用户”命令,打开新建用户对话框。(2)单击“登录名”下拉列表框右端的下拉箭头,选择“ZHANGSAN”登录帐号,此时“用户名”文本框中自动显示为“ZHANGSAN”。可以更改“用户名”文本框中的用户名,也可以在“数据库角色成员”列表框中选择新建用户应该属于的数据库角色。(3)设置完毕后,单击“确定”按钮,即可在Study数据库中创建一个新的用户帐号。如果不想创建用户帐号,单击“取消”按钮即可。,2创建数据库的用户,方法2:使用存储过程格式是:USE数据库名EXECsp_adduser登录帐号,用户帐号,所属的数据库角色USEStudyEXECsp_adduserZHANGSAN,ZHANGSAN,db_owner该语句的功能是向Study数据库中,添加一个名称为ZHANGSAN的用户帐号。,在创建数据库用户帐号对话框中,当新建一个新的用户帐号时,“登录名”右侧的“权限”按钮是灰色的,表示不能在创建数据库用户帐号的同时设置其权限。但可以在创建后通过其属性对话框来设置其权限,步骤如下:(1)在企业管理器的右窗格中的用户帐号上单击鼠标右键,然后选择“属性”命令,打开“数据库用户属性”对话框。(2)在“数据库用户属性”对话框中,单击“权限”按钮,打开权限设置对话框。在此对话框中,可以设置用户对数据库对象所具有的权限。在“对象”列中,显示了数据库中所有的对象,而“所有者”列则显示了相应对象的所有者。其后的6列则是对数据库对象的操作,具体含义如下:SELECT:对表或者视图的查询INSERT:在表或者视图中插入记录UPDATE:对表或者视图中的数据修改DELETE:删除表或者视图中的数据EXEC:执行存储过程DRI:DeclarativeReferentialIntegrity,可对表的外键加上限制,以达成表的参照完整性。,3设置数据库用户帐号的权限,(3)如果要设置对表或者视图的某一字段进行操作的权限,可在列表中选择表或者视图对象,然后单击“列”按钮,可打开“列权限”对话框。使用该对话框即可进行相应权限的设置。,对某个数据库对象而言,如果选中对应的复选框,则表示具有对该对象进行相应操作的权限。每个复选框具有3种状态。空白时表示未指定权限,或权限还原到未设置状态;当打“”时表示具有该权限;当打“”时,表示不具有该权限。,方法1:使用企业管理器在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某一数据库如:Study的文件夹,然后在“用户”选项上单击鼠标右键,在弹出的快捷菜单中选择“删除”菜单命令。方法2:使用存储过程格式是:USE数据库名EXECsp_dropuser用户帐号USEStudyEXECsp_dropuserZHANGSAN该语句表示从数据库Study中删除ZHANGSAN用户帐号。,4删除数据库用户帐号,角色是一个强大的工具,可以将用户集中到一个单元中,然后对该单元应用权限。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。和登录帐号类似,用户帐号也可以分成组,称为数据库角色(DatabaseRoles)。数据库角色应用于单个数据库。在SQLServer中,数据库角色可分为两种:标准角色:由数据库成员所组成的组,此成员可以是用户或者其他的数据库角色。应用程序角色:用来控制应用程序存取数据库的,本身并不包括任何成员。,数据库角色,在创建一个数据库时,系统默认创建10个固定的标准角色。在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某一数据库如:Study的文件夹,然后单击“角色”选项,这时可在企业管理器的右侧窗格中显示出默认的10个标准角色。public角色是最基本的数据库角色。db_owner:在数据库中有全部权限。db_accessadmin:可以添加或删除用户ID。db_securityadmin:可以管理全部权限、对象所有权、角色和角色成员资格。db_ddladmin:可以发出ALLDDL,但不能发出GRANT(授权)、REVOKE或DENY语句。db_backupoperator:可以发出DBCC、CHECKPOINT和BACKUP语句。db_datareader:可以选择数据库内任何用户表中的所有数据。db_datawriter:可以更改数据库内任何用户表中的所有数据。db_denydatareader:不能选择数据库内任何用户表中的任何数据。db_denydatawriter:不能更改数据库内任何用户表中的任何数据。,1标准角色,下面以Study数据库中的db_owner角色为例说明:在企业管理器中,展开SQLServer组及其服务器,在“数据库”文件夹中,展开某一数据库如:Study的文件夹,然后单击“角色”选项,这时可在企业管理器的右侧窗格中显示出该数据库的所有角色。在右侧窗格中,用鼠标右键单击“db_owner”角色,在出现的快捷菜单中,单击“属性”菜单命令,则打开“数据库角色属性”对话框。此对话框中列出了目前包括在该角色中的数据库用户帐号,如:对于本例包括abc和dbo两个用户帐号。默认每个数据库的db_owner中一定包括dbo用户,dbo是默认就存在的用户,就是指数据库的创建者。在此对话框中,单击“添加”按钮可为该角色添加一个用户,单击“删除”按钮,可从角色中删除被选中的用户,但是dbo是不能被删除的。,(1)查看角色的属性:,方法1:使用企业管理器在企业管理器中,展开SQLServer组及其服务器在“数据库”文件夹中,展开某一数据库如:Study的文件夹然后在“角色”选项上单击鼠标右键,在弹出的快捷菜单中选择“新建数据库角色”菜单命令则出现“数据库角色属性新建角色”对话框在该对话框中“名称”文本框中输入角色的名称在“数据库角色类型”中选择角色的类型为标准角色单击“添加”按钮可向角色中添加成员设置完成后,单击“确定”按钮。方法2:使用存储过程其格式是:USE数据库名EXECsp_addrole角色名,拥有者USEStudyEXECsp_addroleMyrole,dbo在Study数据库中创建一名称为Myrole的角色。,(2)创建新的角色,方法1:使用企业管理器在企业管理器中,展开SQLServer组及其服务器在“数据库”文件夹中,展开某一数据库如:Study的文件夹然后单击“角色”选项,这时在企业管理器的右侧窗格中会显示出目前所有的角色在某一角色上单击鼠

温馨提示

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

评论

0/150

提交评论