Mysql第9章用户和数据安全性课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Mysql第9章用户和数据安全性课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mysql 用户 数据 安全性 课件
- 资源描述:
-
1、9.1 添加和删除用户添加和删除用户9.2 授予权限和回收权限授予权限和回收权限9.3 界面方式操作用户与权限界面方式操作用户与权限9.4 表维护语句表维护语句9.1.4 修改密码修改密码9.1.2 删除用户删除用户9.1.3 修改用户名修改用户名9.1.1 添加用户添加用户9.1.2 删除用户删除用户9.1.1 添加用户添加用户9.1.3 修改用户名修改用户名9.1.2 删除用户删除用户9.1.1 添加用户添加用户可用CREATE USER语法添加一个或多个用户,并设置相应的密码。语法格式:CREATE USER user IDENTIFIED BY PASSWORDpassword,use
2、r DENTIFIED BY PASSWORDpassword.说明:user的格式为:user_name host nameuser_name为用户名,host_name为主机名,password为该用户的密码。IDENTIFIED BY子句,为账户给定一个密码。特别是要在纯文本中指定密码,需忽略PASSWORD关键词。如果不想以明文发送密码,而且知道PASSWORD()函数返回给密码的混编值,则可以指定该混编值,但要加关键字PASSWORD。CREATE USER用于创建新的MySQL账户。CREATE USER会在系统本身的mysql数据库的user表中添加一个新记录。要使用CREATE
3、 USER,必须拥有mysql数据库的全局CREATE USER权限或INSERT权限。如果账户已经存在,则出现错误。【例9.1】添加两个新的用户,king的密码为queen,palo的密码为530415。CREATE USER kinglocalhost IDENTIFIED BY queen,palolocalhost IDENTIFIED BY 530415;说明:llocalhost指定了用户创建的使用MySQL的连接所来自的主机。如果一个用户名和主机名中包含特殊符号如“_”,或通配符如“%”,则需要用单引号将其括起。“%”表示一组主机。l如果两个用户具有相同的用户名但主机不同,MyS
4、QL将其视为不同的用户,允许为这两个用户分配不同的权限集合。l如果没有输入密码,那么MySQL允许相关的用户不使用密码登录。但是从安全的角度并不推荐这种做法。l刚刚创建的用户还没有很多权限。它们可以登录到刚刚创建的用户还没有很多权限。它们可以登录到MySQL,但是它们不能使用但是它们不能使用USE语句来让用户已经创建的任何数据库成为当语句来让用户已经创建的任何数据库成为当前数据库,因此,它们无法访问那些数据库的表,只允许进行不需前数据库,因此,它们无法访问那些数据库的表,只允许进行不需要权限的操作,例如,用一条要权限的操作,例如,用一条SHOW语句查询所有存储引擎和字语句查询所有存储引擎和字符
5、集的列表符集的列表。语法格式:DROP USER user,user_name.DROP USER语句用于删除一个或多个MySQL账户,并取消其权限。要使用DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限。【例9.2】删除用户TOM。DROP USER TOMlocalhost;如果删除的用户已经创建了表、索引或其他的数据库对象,它们将继续保留,因为MySQL并没有记录是谁创建了这些对象。修改一个已经存在的SQL用户的名字。语法格式:RENAME USER old_user TO new_user,old_user TO new_user.说明:o
6、ld_user为已经存在的SQL用户。new_user为新的SQL用户。RENAME USER语句用于对原有MySQL账户进行重命名。使用该语句,必须拥有全局CREATE USER权限或mysql数据库UPDATE权限。如果旧账户不存在或者新账户已存在,则会出现错误。【例9.3】将用户king1和king2的名字分别修改为ken1和ken2。RENAME USERking1localhost TO ken1localhost,king2localhost TO ken2localhost;修改某个用户的登录密码,语法格式:SET PASSWORD FOR user=PASSWORD(newpa
7、ssword)说明:如果不加FOR user,表示修改当前用户的密码。加了FOR user则是修改当前主机上的特定用户的密码,user为用户名。user的值必须以user_namehost_name的格式给定。SET PASSWORD FOR kinglocalhost=PASSWORD(queen1);9.2.1 9.2.1 两级访问控制两级访问控制 9.2.2 9.2.2 授予权限授予权限 9.2.3 9.2.3 权限的转移和限制权限的转移和限制 9.2.4 9.2.4 回收权限回收权限 通常情况下,建立一个数据库以后,并不是所有的人都可以看到数据库里的所有数据(无论是修改还是删除)。为了
8、保护数据不被探查或未经授权的篡改,MySQL采用了一种双层的访问控制机制。第一层用来检查各位用户是否有权与MySQL进行通信。第二层用来检查各位用户都有权对哪些数据库、数据表和数据列进行哪些操作。只有在建立连接的检查完成以后,第二阶段的访问控制才开始实施,这种控制细化到每一条数据库命令。例如,要执行一个SELECT命令,MySQL会检查该用户对数据库、数据表和数据列是否具有执行这个命令的权限。要执行一个INSERT命令,那么MYSQL要检查是否允许该用户改变数据库、数据表直到数据列的内容。MYSQL使用存储着privileges的数据表进行管理的。如果一个用户auser,具有对数据库cxdb1
9、的select权限,那么该用户就可以读取cxdb1中的所有数据。如果该用户具有全局的select权限,该用户就可以读取所有存储于MYSQL的数据库。在设置访问权限的时候,MYSQL提供了一个准确、相互衔接的系统,在MYSQL文档中,这个系统被称为访问权限系统(access privilege system),这个系统里的各个列表被称为访问控制表ACL。以图形用户界面使用管理程序-最简单方便 使用INSERT和UPDATE命令直接改变MYSQL 使用SQL的命令GRANT和REVOKE。使用Perl脚本程序mysql_setpermission.pl。当然,它假设用户安装并运行着Perl。由My
10、SQL管理的访问权限是依靠数据库来实现的,这个数据库的名字叫mysql,它由几个数据表组成,对应着访问权限的各个方面。Zeuse(包括用户名,主机名,密码)必须被输入到user数据表里。Zeuse的所有全局权限都必须设置为N Zeuse(包括用户名,主机名)还必须要在columns_priv数据表中注册。在columns_priv数据表中,还必须设定都允许Zeuse访问哪个数据列(数据库名,数据表名,数据列名)Select权限(仅)必须要激活。当相应等级的权限设置为N时,数据表db,host,table_priv,columns_priv以这个顺序依次实施。即:如果select权限赋予了use
11、r数据表中的一个用户,那么其他的4个数据表就不再用于检查这个用户是否允许执行SELECT命令。所以,要想对访问权限进行精确的区别,就必须把user数据表里的全局权限全部设置为N.新的SQL用户不允许访问属于其他SQL用户的表,也不能立即创建自己的表,它必须被授权。权限有以下几组。(1)列权限:和表中的一个具体列相关。)列权限:和表中的一个具体列相关。例如,使用UPDATE语句更新表XS学号列的值的权限。(2)表权限:和一个具体表中的所有数据相关。)表权限:和一个具体表中的所有数据相关。例如,使用SELECT语句查询表XS的所有数据的权限。(3)数据库权限:和一个具体的数据库中的所有表相关。)数
12、据库权限:和一个具体的数据库中的所有表相关。例如,在已有的XSCJ数据库中创建新表的权限。(4)用户权限:和)用户权限:和MySQL所有的数据库相关。所有的数据库相关。例如,删除已有的数据库或者创建一个新的数据库的权限。使用使用GRANT语句可以给某用户授予权限。语句可以给某用户授予权限。Grant可以把指定的权限分配给特定的用户,如果这可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户。个用户不存在,则会创建一个用户。使用使用SHOW GRANTS语句可以查看当前语句可以查看当前账户拥有什么权限。账户拥有什么权限。其中,权限1,权限2,权限n代表select,insert
13、,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。当权限1,权限2,权限n被all privileges或者all代替,表示赋予用户全部权限。当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用%表示从任何地址连接。连接口令不能为空,否则创建失败。grant 权限权限1,权限权限2,权限权限n on 数据库名数据库名.表名表名 to 用户名用户名用户地址用户地
14、址 identified by 口令口令;(1)授予表权限和列权限(2)授予数据库权限(3)授予用户权限 授予表权限时,权限1,权限2,权限n可以是:SELECT:给予用户使用SELECT语句访问特定的表的权力。用户也可以在一个视图公式中包含表。然而,用户必须对视图公式中指定的每个表(或视图)都有SELECT权限。INSERT:给予用户使用INSERT语句向一个特定表中添加行的权力。DELETE:给予用户使用DELETE语句向一个特定表中删除行的权力。UPDATE:给予用户使用UPDATE语句修改特定表中值的权力。授予表权限-续 REFERENCES:给予用户创建一个外键来参照特定的表的权力。
15、CREATE:给予用户使用特定的名字创建一个表的权力。ALTER:给予用户使用ALTER TABLE语句修改表的权力。INDEX:给予用户在表上定义索引的权力。DROP:给予用户删除表的权力。ALL或ALL PRIVILEGES:表示所有权限名。【例9.5】授予用户king在xscj.XS表上的SELECT权限。USE XSCJ;GRANT SELECT ON XS TO kinglocalhost;说明:这里假设是在ROOT用户中输入了这些语句,这样用户king就可以使用SELECT语句来查询XS表,而不管是谁创建的这个表。若在TO子句中给存在的用户指定密码,则新密码将原密码覆盖。如果权限授
16、予了一个不存在的用户,MySQL会自动执行一条CREATE USER语句来创建这个用户,但必须为该用户指定密码。USE XSCJ;GRANT SELECT,UPDATE ON XS TO liulocalhost IDENTIFIED BY LPWD,zhanglocalhost IDENTIFIED BY ZPWD;【例9.6】用户liu和zhang不存在,授予它们在XS表上的SELECT和UPDATE权限。授予列权限时 权限只能取SELECT、INSERT和UPDATE。权限值的后面需要加上列名。【例9.7】授予king在XS表上的学号列和姓名列的UPDATE权限。GRANT UPDATE
17、(姓名姓名,学号学号)ON XS TO kinglocalhost;例如,在一个特定的数据库中创建表和视图的权限。授予数据库权限时,priv_type可以是以下值:SELECT:给予用户使用SELECT语句访问特定数据库中所有表和视图的权力。INSERT:给予用户使用INSERT语句向特定数据库中所有表添加行的权力。DELETE:给予用户使用DELETE语句删除特定数据库中所有表的行的权力。UPDATE:给予用户使用UPDATE语句更新特定数据库中所有表的值的权力。REFERENCES:给予用户创建指向特定的数据库中的表外键的权力。CREATE:给予用户使用CREATE TABLE语句在特定数
18、据库中创建新表的权力。ALTER:给予用户使用ALTER TABLE语句修改特定数据库中所有表的权力。INDEX:给予用户在特定数据库中的所有表上定义和删除索引的权力。DROP:给予用户删除特定数据库中所有表和视图的权力。CREATE TEMPORARY TABLES:给予用户在特定数据库中创建临时表的权力。CREATE VIEW:给予用户在特定数据库中创建新的视图的权力。SHOW VIEW:给予用户查看特定数据库中已有视图的视图定义的权力。CREATE ROUTINE:给予用户为特定的数据库创建存储过程和存储函数等权力。ALTER ROUTINE:给予用户更新和删除数据库中已有的存储过程和存
19、储函数等权力。EXECUTE ROUTINE:给予用户调用特定数据库的存储过程和存储函数的权力。LOCK TABLES:给予用户锁定特定数据库的已有表的权力。ALL或ALL PRIVILEGES:表示以上所有权限名。在GRANT语法格式中,授予数据库权限时ON关键字后面跟“*”和“db_name.*”。“*”表示当前数据库中的所有表;“db_name.*”表示某个数据库中的所有表。GRANT SELECT ON XSCJ.*TO kinglocalhost identified by 123;说明:说明:这个权限适用于所有已有的表,以及此后添加到这个权限适用于所有已有的表,以及此后添加到XSC
展开阅读全文