MySQL教程(第4版) 课件 第9章 用户管理和权限控制_第1页
MySQL教程(第4版) 课件 第9章 用户管理和权限控制_第2页
MySQL教程(第4版) 课件 第9章 用户管理和权限控制_第3页
MySQL教程(第4版) 课件 第9章 用户管理和权限控制_第4页
MySQL教程(第4版) 课件 第9章 用户管理和权限控制_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

第9章

用户管理和权限控制——用户管理01添加、删除用户添加用户删除用户添加、删除用户1.添加用户可以使用语句添加一个或多个用户,并设置相应的密码。CREATEUSER用户[IDENTIFIEDBY[PASSWORD]'密码'],…其中,用户:'用户名'@'主机名'说明:(1)在大多数SQL产品中,用户名和密码只由字母和数字组成。将本地主机作为MySQL服务器,则主机名为localhost。(2)CREATEUSER用于创建新的MySQL账户,在系统数据库mysql的user表中添加一个新记录。创建账户必须拥有mysql数据库的全局CREATEUSER权限或INSERT权限。如果账户已经存在,则出现错误。(3)使用自选的IDENTIFIEDBY子句,可以指定账户一个密码。在纯文本中指定密码时,需忽略PASSWORD关键词。添加、删除用户【例】添加两个新的用户,king的密码为queen,palo的密码为530415。CREATEUSER 'king'@'localhost'IDENTIFIEDBY'queen', 'palo'@'localhost'IDENTIFIEDBY'530415';完成后可切换到mysql数据库,从user表中查到刚刚添加的两个用户记录:USEmysql;SHOWtables;SELECT*FROMuser;说明:(1)在用户名的后面声明了关键字localhost,指定了创建用户使用的MySQL连接来自于本地主机。(2)如果两个用户具有相同的用户名但主机不同,MySQL将其视为不同的用户,允许为这两个用户分配不同的权限集合。(3)如果没有输入密码,那么MySQL允许相关的用户不使用密码登录。但是从安全的角度并不推荐这种做法。(4)新创建的用户还没有很多权限。它们可以登录到MySQL,但是并不能使用USE语句来让任何数据库成为当前数据库,因此无法访问数据库的表,只允许进行不需要权限的操作,例如,用一条SHOW语句查询所有存储引擎和字符集的列表。添加、删除用户2.删除用户DROPUSER用户,...该语句用于删除一个或多个MySQL账户,并取消其权限。删除账户必须拥有系统数据库mysql的全局CREATEUSER权限或DELETE权限。【例】删除用户palo。DROPUSERpalo@localhost;删除后可以用上面介绍的方法查看一下效果。如果被删的用户已创建了表、索引或其他数据库对象,它们将继续保留,因为MySQL并没有记录是谁创建了这些对象。02修改用户名、密码修改用户名修改密码修改用户名、密码1.修改用户名可以使用下列语句来修改一个已经存在的用户的名字。RENAMEUSER老用户TO新用户,...该语句用于对原有MySQL账户进行重命名。修改用户名必须拥有全局CREATEUSER权限或mysql数据库UPDATE权限。如果旧账户不存在或者新账户已存在,则会出现错误。【例】将用户king的名字修改为ken。RENAMEUSER 'king'@'localhost'TO'ken'@'localhost';2.修改密码要修改某个用户的登录密码,可以使用SETPASSWORD语句。SETPASSWORD[FOR用户]=PASSWORD('新密码')说明:如果不加“FOR用户”,表示修改当前用户的密码。加了“FOR用户”则是修改当前主机上的特定用户的密码。用户名必须以“'用户名'@'主机名'”的格式指定。【例】将用户ken的密码修改为qen。SETPASSWORDFOR'ken'@'localhost'=PASSWORD('qen');第9章

用户管理和权限控制——权限控制01授

限可授予的表权限和列权限可授予的数据库权限可授予的用户权限授予权限新的用户不允许访问属于其他用户的表,也不能立即创建自己的表,它必须被授权。可以授予的权限有以下几组。(1)列权限:和表中的一个具体列相关。例如,使用UPDATE语句更新xs表学号列的值的权限。(2)表权限:和一个具体表中的所有数据相关。例如,使用SELECT语句查询xs表所有数据的权限。(3)数据库权限:和一个具体的数据库中的所有表相关。例如,在已有的xscj数据库中创建新表的权限。(4)用户权限:和MySQL所有的数据库相关。例如,删除已有的数据库或者创建一个新的数据库的权限。授予权限给某用户授予权限可以使用下列语句。GRANT权限[(列名表)],... ON[对象类型]{表名|*|*.*|数据库名.*} TO用户[IDENTIFIEDBY[PASSWORD]'密码'],... [WITH选项...]其中,对象类型:TABLE|FUNCTION|PROCEDURE选项:GRANTOPTION|MAX_QUERIES_PER_HOURcount|MAX_UPDATES_PER_HOURcount|MAX_CONNECTIONS_PER_HOURcount|MAX_USER_CONNECTIONScount授予权限1.可授予的表权限和列权限授予表权限和列权限时权限可以是以下值。SELECT:给予用户使用SELECT语句访问特定表或列的权限。用户也可以在一个视图公式中包含表。然而,用户必须对视图公式中指定的每个表(或视图)都有SELECT权限。INSERT:给予用户使用INSERT语句向一个特定表中添加行的权限。DELETE:给予用户使用DELETE语句向一个特定表中删除行的权限。UPDATE:给予用户使用UPDATE语句修改特定表中值的权限。REFERENCES:给予用户创建一个外键来参照特定的表的权限。CREATE:给予用户使用特定的名字创建一个表的权限。ALTER:给予用户使用ALTERTABLE语句修改表的权限。INDEX:给予用户在表上定义索引的权限。DROP:给予用户删除表的权限。ALL或ALLPRIVILEGES:表示所有权限名。授予权限【例】授予用户ken对xs表的SELECT权限。USExscj;GRANTSELECT ONxs TOken@localhost;若在TO子句中给存在的用户指定密码,则新密码将覆盖原密码。如果权限授予了一个不存在的用户,MySQL会自动执行一条CREATEUSER语句来创建这个用户,但必须为该用户指定密码。【例】授予liu和zhang新用户对xs表的SELECT和UPDATE权限。GRANTSELECT,UPDATE ONxs TOliu@localhostIDENTIFIEDBY'pwd123',

zhang@localhostIDENTIFIEDBY'pwd123';对于列权限,权限只能取SELECT、INSERT和UPDATE。权限的后面需要加上列名表。【例】授予用户ken对xs表的姓名列和学号列的UPDATE权限。USExscj;GRANTUPDATE(姓名,学号) ONxs TOken@localhost;授予权限2.可授予的数据库权限表权限仅适用于一个特定的表,MySQL还支持针对整个数据库的权限。例如,在一个特定的数据库中创建表和视图的权限。授予数据库权限时,可以是以下值。SELECT:给予用户使用SELECT语句访问特定数据库中所有表和视图的权限。INSERT:给予用户使用INSERT语句向特定数据库中所有表添加行的权限。DELETE:给予用户使用DELETE语句删除特定数据库中所有表的行的权限。UPDATE:给予用户使用UPDATE语句更新特定数据库中所有表的值的权限。REFERENCES:给予用户创建指向特定的数据库中的表外键的权限。CREATE:给予用户使用CREATETABLE语句在特定数据库中创建新表的权限。ALTER:给予用户使用ALTERTABLE语句修改特定数据库中所有表的权限。INDEX:给予用户在特定数据库中的所有表中定义和删除索引的权限。DROP:给予用户删除特定数据库中所有表和视图的权限。CREATETEMPORARYTABLES:给予用户在特定数据库中创建临时表的权限。CREATEVIEW:给予用户在特定数据库中创建新的视图的权限。SHOWVIEW:给予用户查看特定数据库中已有视图的视图定义的权限。授予权限在GRANT语法格式中,授予数据库权限时,ON关键字后面跟“*”表示当前数据库中的所有表;“数据库名.*”表示指定数据库中的所有表。【例】授予用户ken对xscj数据库中的所有表的SELECT权限。GRANTSELECT ONxscj.* TOken@localhost;【例】授予用户ken对xscj数据库的所有数据库权限。USExscj;GRANTALL ON* TOken@localhost;授予权限3.可授予的用户权限MySQL授予用户权限时还可以是以下值。CREATEUSER:给予用户创建和删除新用户的权限。SHOWDATABASES:给予用户使用SHOWDATABASES语句查看所有已有数据库定义的权限。授予用户权限时ON子句中使用“*.*”,表示所有数据库的所有表。【例】授予用户peter对所有数据库中的所有表的CREATE、ALTERT和DROP权限。GRANTCREATE,ALTER,DROP ON*.* TOpeter@localhostIDENTIFIEDBY'p123';【例】授予用户peter创建新用户的权限。GRANTCREATEUSER ON*.* TOpeter@localhost;授予权限为了概括权限,表列出了可以在哪些级别授予某条SQL语句权限。语句用户权限数据库权限表权限列权限SELECTYesYesYesNoINSERTYesYesYesNoDELETEYesYesYesYesUPDATEYesYesYesYesREFERENCESYesYesYesYesCREATEYesYesYesNoALTERYesYesYesNoDROPYesYesYesNoINDEXYesYesYesYesCREATETEMPORARYTABLESYesYesNoNoCREATEVIEWYesYesNoNoSHOWVIEWYesYesNoNoCREATEROUTINEYesYesNoNoALTERROUTINEYesYesNoNoEXECUTEROUTINEYesYesNoNoLOCKTABLESYesYesNoNoCREATEUSERYesNoNoNoSHOWDATABASESYesNoNoNoFILEYesNoNoNoPROCESSYesNoNoNoRELOADYesNoNoNoREPLICATIONCLIENTYesNoNoNoREPLICATIONSLAVEYesNoNoNoSHUTDOWNYesNoNoNoSUPERYesNoNoNoUSAGEYesNoNoNo02权限转移和限制权限转移和限制【例】授予用户caddy对xs表的SELECT权限,并允许其将该权限授予其他用户。首先在root用户下授予caddy用户SELECT权限:GRANTSELECT ONxscj.xs TOcaddy@localhostIDENTIFIEDBY'19830925' WITHGRANTOPTION;接着,以caddy用户身份登录MySQL,登录方式如下。(1)打开命令行窗口,进入mysql安装目录下的bin目录:cdC:\ProgramFiles\MySQL\MySQLServer5.7\bin(2)登录,输入命令:MYSQL-hlocalhost-ucaddy-p19830925登录后,caddy用户只有查询xscj数据库中xs表的权力,它可以把这个权限传递给其他用户,这里假设用户jim已经创建:GRANTSELECT ONxscj.xs TOjim@localhost;权限转移和限制说明:使用了WITHGRANTOPTION子句后,如果caddy在该表上还拥有其他权限,则caddy可以将其他权限也授予Jim而不仅限于SELECT。WITH子句也可以对一个用户授予使用限制,其中,MAX_QUERIES_PER_HOUR次数:表示每小时可以查询数据库的最大次数;MAX_CONNECTIONS_PER_HOUR次数:表示每小时可以连接数据库的最大次

温馨提示

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

评论

0/150

提交评论